我最近将我的应用程序从laravel 5.1升级到5.2版本。此外,我正在尝试将数据库中的会话存储在当前存储在文件中。
我已将.env文件更改为包含SESSION_DRIVER = database。我还更改了session.config文件以包含' driver' => env(' SESSION_DRIVER','数据库')并生成所需的会话表。
但是当我尝试登录应用程序时,我在VerifyCsrfToken.php第67行中获取了TokenMismatchException:如果我更改了SESSION_DRIVER = file,那么应用程序正在按预期工作。
但是在Laravel 5.1版本中并非如此。
Laravel 5.2版本有哪些变化,以及在数据库中存储用户会话需要哪些步骤?
答案 0 :(得分:3)
我自己也必须处理这个问题。因此,最初的步骤正如您在问题中已经提到的那样。
在全新安装laravel并验证一切正常后,将SESSION_DRIVER=file
更改为SESSION_DRIVER=database
在您的应用目录中的控制台中运行以下命令IN ORDER:
php artisan session:table
composer dump-autoload
php artisan migrate
(此步骤可能与您所做的不同)在您的config \ session.php文件中搜索:
'driver' => env('SESSION_DRIVER', 'file'),
并将其更改为以下
'driver' => env('SESSION_DRIVER', 'app.database'),
在同一个config \ session.php文件中,将加密配置更改为true
正确设置连接和表名设置
'connection' => 'database_name_here',
'table' => 'sessions', //here you can change but sessions is recommended until you get more comfortable with how it all works
尝试登录您的应用程序并检查您的数据库以查看它是否全部有效。
如果需要更多帮助,您还可以查看帮助我解决问题的一些资源。请记住,这些资源是有类似问题的人,但也许你的问题与他们的问题类似。找出方法的唯一方法就是调查。希望这可以帮助! =):
https://laracasts.com/discuss/channels/laravel/how-to-store-users-id-in-session-table-laravel-5
https://laravel.com/docs/5.2/session
(Laravel Sessions上的视频教程,非常适合帮助您到达目的地的好地方!) https://www.youtube.com/watch?v=-FMecyZs5Cg
答案 1 :(得分:-1)
看起来可以手动使用它,但为什么不使用php artisan make:auth
它创建了身份验证所需的所有内容,还可以帮助您保持会话而不是手动操作?