Laravel TokenMismatchException 数据库会话
问题描述
从文件切换到数据库会话时,我的 $request->input(_token) 与 $request->session()->toke() 不匹配.
My $request->input(_token) is a mismatch of $request->session()->toke() when switching from file to database sessions.
这会导致 CSRF TokenMismatchException.当从数据库切换回文件会话驱动程序时,不会发生不匹配.
This is causing a CSRF TokenMismatchException. When switching back from database to file sessons driver the mismatch does not occur.
有谁知道我为什么会出现这种不匹配以及如何解决它?:)我做了什么:
<小时>使用 Laravel 5.0
PHP 5.6.30
Using Laravel 5.0
PHP 5.6.30
php artisan session:table : 创建 Laravel 会话表作曲家转储自动加载php工匠配置:清除php arisan 配置:缓存
php artisan session:table : Created Laravel session table composer dump-autoload php artisan config:clear php arisan config:cache
我的 session.php 配置如下所示:
My session.php config looks like this:
VerifyCsrfToken IlluminateFoundationMiddleware
切换到数据库sesseio驱动后,数据库表填充数据:
Database table is populated with data after switching to database sesseio driver:
我在 html 中生成 csrf_tokens
I am generating csrf_tokens in html
推荐答案
如果你在使用 Laravel 5.4* 并且碰巧遇到了这个问题,这就是你需要做的事情
If you are using Laravel 5.4* and you happen to stumble upon this problem, here is what you need to do
1- 更新您的 .env 文件
1- Update your .env file
注意此处的 DB_CONNECTION 设置,您将在下一步中使用.
Note the DB_CONNECTION setting here that you will need in next step.
2- 更新 config/session.php 文件连接参数应该包含您在 .env 文件中用于 DB_CONNECTION 的字符串
2- update config/session.php file Where connection param should hold the string you used for DB_CONNECTION in .env file
3- 生成会话表
4- 如果出于某种原因您决定手动创建表而不使用迁移,请使用此 SQL.这是非常重要的一步,一个错误的表会导致各种问题.主要是不要犯错手动创建表,id列和往常一样bigint,session表不一样.
4- if for some reason you decided to create the table manually without using migration , use this SQL. This is very important step, a wrong table will result in all kinds of problems. Primarily do not make the mistake of creating a table manually with id column as bigint as usual, session table is different.
这应该可以解决将db设置为会话保存路径后的令牌不匹配异常.
That should solve the token mismatch exception after setting db as session save path.
这篇关于Laravel TokenMismatchException 数据库会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!