2015-07-12 15:01:42 -04:00
|
|
|
<?php
|
|
|
|
|
2021-06-26 11:23:15 -04:00
|
|
|
use Illuminate\Support\Str;
|
2021-01-01 21:43:50 -05:00
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
/**
|
|
|
|
* Session configuration options.
|
|
|
|
*
|
|
|
|
* Changes to these config files are not supported by BookStack and may break upon updates.
|
|
|
|
* Configuration should be altered via the `.env` file or environment variables.
|
|
|
|
* Do not edit this file unless you're happy to maintain any changes yourself.
|
|
|
|
*/
|
2015-07-12 15:01:42 -04:00
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
return [
|
2015-07-12 15:01:42 -04:00
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Default session driver
|
|
|
|
// Options: file, cookie, database, redis, memcached, array
|
2015-07-12 15:01:42 -04:00
|
|
|
'driver' => env('SESSION_DRIVER', 'file'),
|
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Session lifetime, in minutes
|
2017-11-11 13:30:55 -05:00
|
|
|
'lifetime' => env('SESSION_LIFETIME', 120),
|
2015-07-12 15:01:42 -04:00
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Expire session on browser close
|
2015-07-12 15:01:42 -04:00
|
|
|
'expire_on_close' => false,
|
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Encrypt session data
|
2015-07-12 15:01:42 -04:00
|
|
|
'encrypt' => false,
|
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Location to store session files
|
2015-07-12 15:01:42 -04:00
|
|
|
'files' => storage_path('framework/sessions'),
|
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Session Database Connection
|
|
|
|
// When using the "database" or "redis" session drivers, you can specify a
|
|
|
|
// connection that should be used to manage these sessions. This should
|
|
|
|
// correspond to a connection in your database configuration options.
|
2015-07-12 15:01:42 -04:00
|
|
|
'connection' => null,
|
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Session database table, if database driver is in use
|
2015-07-12 15:01:42 -04:00
|
|
|
'table' => 'sessions',
|
|
|
|
|
2019-09-06 18:36:16 -04:00
|
|
|
// Session Cache Store
|
|
|
|
// When using the "apc" or "memcached" session drivers, you may specify a
|
|
|
|
// cache store that should be used for these sessions. This value must
|
|
|
|
// correspond with one of the application's configured cache stores.
|
|
|
|
'store' => null,
|
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Session Sweeping Lottery
|
|
|
|
// Some session drivers must manually sweep their storage location to get
|
|
|
|
// rid of old sessions from storage. Here are the chances that it will
|
|
|
|
// happen on a given request. By default, the odds are 2 out of 100.
|
2015-07-12 15:01:42 -04:00
|
|
|
'lottery' => [2, 100],
|
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Session Cookie Name
|
|
|
|
// Here you may change the name of the cookie used to identify a session
|
|
|
|
// instance by ID. The name specified here will get used every time a
|
|
|
|
// new session cookie is created by the framework for every driver.
|
2018-09-22 06:41:46 -04:00
|
|
|
'cookie' => env('SESSION_COOKIE_NAME', 'bookstack_session'),
|
2015-07-12 15:01:42 -04:00
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Session Cookie Path
|
|
|
|
// The session cookie path determines the path for which the cookie will
|
|
|
|
// be regarded as available. Typically, this will be the root path of
|
|
|
|
// your application but you are free to change this when necessary.
|
2021-03-16 09:03:07 -04:00
|
|
|
'path' => '/' . (explode('/', env('APP_URL', ''), 4)[3] ?? ''),
|
2015-07-12 15:01:42 -04:00
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Session Cookie Domain
|
|
|
|
// Here you may change the domain of the cookie used to identify a session
|
|
|
|
// in your application. This will determine which domains the cookie is
|
|
|
|
// available to in your application. A sensible default has been set.
|
2018-05-20 04:38:27 -04:00
|
|
|
'domain' => env('SESSION_DOMAIN', null),
|
2015-07-12 15:01:42 -04:00
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// HTTPS Only Cookies
|
|
|
|
// By setting this option to true, session cookies will only be sent back
|
|
|
|
// to the server if the browser has a HTTPS connection. This will keep
|
|
|
|
// the cookie from being sent to you if it can not be done securely.
|
2021-01-01 21:43:50 -05:00
|
|
|
'secure' => env('SESSION_SECURE_COOKIE', null)
|
2022-05-11 11:46:59 -04:00
|
|
|
?? Str::startsWith(env('APP_URL', ''), 'https:'),
|
2018-05-20 04:38:27 -04:00
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// HTTP Access Only
|
|
|
|
// Setting this value to true will prevent JavaScript from accessing the
|
|
|
|
// value of the cookie and the cookie will only be accessible through the HTTP protocol.
|
2018-05-20 04:38:27 -04:00
|
|
|
'http_only' => true,
|
|
|
|
|
2018-12-23 11:26:39 -05:00
|
|
|
// Same-Site Cookies
|
|
|
|
// This option determines how your cookies behave when cross-site requests
|
|
|
|
// take place, and can be used to mitigate CSRF attacks. By default, we
|
|
|
|
// do not enable this as other CSRF protection services are in place.
|
2021-01-01 21:43:50 -05:00
|
|
|
// Options: lax, strict, none
|
|
|
|
'same_site' => 'lax',
|
2024-03-16 11:12:14 -04:00
|
|
|
|
|
|
|
|
|
|
|
// Partitioned Cookies
|
|
|
|
// Setting this value to true will tie the cookie to the top-level site for
|
|
|
|
// a cross-site context. Partitioned cookies are accepted by the browser
|
|
|
|
// when flagged "secure" and the Same-Site attribute is set to "none".
|
|
|
|
'partitioned' => false,
|
2015-07-12 15:01:42 -04:00
|
|
|
];
|