Laravel 5.1 session 不能持久, TokenMismatchException 错误!!

2015-10-22 11:18:03 +08:00
 dongcheng
大家好,有用 LARAVEL5 的吗? SESSION 不能持久,从 FILE 换到 COOKIE ,都有问题,导致 TokenMismatchException , AUTH 也经常不能保持登陆状态

已经折腾好几天啦!!

https://phphub.org/topics/640

链接(技术论坛)能贴吗?这里有一个类似的问题,但是也没有解决方案啊~
2523 次点击
所在节点    问与答
8 条回复
Dannytmp
2015-10-22 13:23:59 +08:00
laravel 官网不知用了哪些被强的服务,很难打得开啊
dongcheng
2015-10-22 14:30:35 +08:00
@Dannytmp 晕,我打开还可以
Dannytmp
2015-10-22 14:51:02 +08:00
@dongcheng 经常性的打不开,有时也能打得开
denghongcai
2015-10-22 14:59:22 +08:00
Github 上 Laravel 的仓库有对应的 issue ,但是被强制关了,按作者的话说:确实没法重现

尝试以下步骤:
1. 把 fpm 的 worker 数量减为 1 ,看问题是否存在
2. 开发者工具查看 session id 是不是在变动,哪一步变动了,有时候是因为 404 错误导致 session 被重置(例如 Chrome 会自动请求网站的 favicon.ico )
3. 用 Memcached 或者 Redis 作为 Session 的存储
dongcheng
2015-10-22 22:18:31 +08:00
@denghongcai 我的环境是 laravel 5.1/XAMPP Version: 5.6.8/Windows 7 Ultimate SP1 64-bit/php 5.6.8

难道都是用 redis 和 memcached 做 session?

我在 github 提交的 issue 也被关闭了,回复说 file 做 session 不能用生产环境,要用 redis ?其实我,本来是 file 改成 cookie 还是出问题,在想是不是改成 database 。
dongcheng
2015-10-24 00:37:30 +08:00
@denghongcai

我发现一个有用的评论

https://github.com/laravel/framework/issues/9522

iLeoDo 说是 blade template 模板的原因

我建了一个简单的表单,没有用 blade ,结果提交了一下, SESSION 也正常了, TokenMismatchException 也没有了!!?

据说在过程里中断会出现 SESSION 问题, blade 模板里中断了?
denghongcai
2015-10-24 11:31:11 +08:00
Laravel 的 Session 是在整个请求流程结束之后的 after middleware 进行处理的,如果在控制器或者在模板中直接调用 exit(), die()之类的函数退出就可能出现 Session 未被处理的问题
dongcheng
2015-10-24 12:43:40 +08:00
@denghongcai

用 blade 布局里的 @stop ,会中断吗?我试了下只能这么解释。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/230111

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX