当我将驱动程序会话更改为数据库时,我遇到问题,当我尝试登录时始终是令牌未命中匹配。 我做过一些像
这样的动作php artisan config:clear
php artisan config:cache
php artisankey:generate
并在config / session.php中更改
return [
'driver' => env('SESSION_DRIVER', 'file'),'lifetime' => 120,
'expire_on_close' => false,
'encrypt' => false,'files' =>
'storage_path('framework/sessions'),'connection' => 'mysql',
'table' => 'sessions',
'store' => null,
'lottery' => [2, 100],
'cookie' => 'laravel_session',
'path' => '/',
'domain' => env('SESSION_DOMAIN', null),
'secure' => env('SESSION_SECURE_COOKIE', false);
'http_only' => true,
];
这个错误我有
答案 0 :(得分:1)
我认为您应该按照以下步骤将SESSION_DRIVER设置为数据库
1-你的.env文件
项目根目录中的#file = .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=testdb
DB_USERNAME=db_user
DB_PASSWORD=secret_pass
SESSION_DRIVER=database
注意此处的DB_CONNECTION设置,您将在下一步中使用。
2- update config / session.php文件其中connection param应该包含你在.env文件中用于DB_CONNECTION的字符串
#file = config / session.php
'driver' => env('SESSION_DRIVER', 'database'),
'connection' => 'mysql', // this is from DB_CONNECTION in .env file
3-生成会话表
php artisan session:table
//运行迁移!非常非常重要
php artisan migrate
4-如果由于某种原因您决定在不使用迁移的情况下手动创建表,请使用此SQL。这是非常重要的一步,错误的表会导致各种问题。主要是不要像往常一样使用id列手动创建表的错误,会话表是不同的。 如果您想手动创建
,那么您应该运行的会话表SQL
DROP TABLE IF EXISTS `sessions`;
create table sessions
(
id varchar(255) not null,
user_id int(10) unsigned null,
ip_address varchar(45) null,
user_agent text null,
payload text not null,
last_activity int not null,
constraint sessions_id_unique
unique (id)
)
请检查我认为此信息对您有帮助!!!