2017-08-31 65 views
1

當我將驅動程序會話更改爲數據庫時,我遇到問題,當我嘗試登錄時總是令牌匹配錯誤匹配。 我已經做了一些操作,如當會話驅動程序是數據庫時令牌缺失匹配Laravel

php artisan config:clear 
php artisan config:cache 
php artisankey:generate 

和配置也改變/ 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, 
]; 

這個錯誤我有

enter image description here

+0

任何在https://stackoverflow.com/questions/34866404/tokenmismatchexception-in-verifycsrftoken-php-line-67能夠幫助嗎? – Scuzzy

+0

@iqbal prabu請檢查此鏈接(https://stackoverflow.com/questions/22154990/token-mismatch-when-changing-session-driver-in-laravel-4)我希望它幫助你 –

+0

沒有希望,我有嘗試過 –

回答

0

我想你應該遵循以下將SESSION_DRIVER設置爲數據庫的步驟明智

1 - 你.ENV文件

#文件= .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 - 更新配置/ session.php文件file其中連接PARAM要你抱在.ENV文件用於DB_CONNECTION

#文件=配置/ 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列爲bigint的表,會話表是不同的。 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) 
) 

請查看我覺得這個信息幫助你!

+0

感謝您的回答.. –

相關問題