【问题标题】:Unable to store session in Database in laravel 5.2无法在 laravel 5.2 的数据库中存储会话
【发布时间】:2016-09-23 05:03:05
【问题描述】:

我最近将我的应用程序从 laravel 5.1 升级到了 5.2 版本。另外我正在尝试将会话存储在当前存储在文件中的数据库中。

我已更改 .env 文件以包含 SESSION_DRIVER=database。我还更改了 session.config 文件以包含 'driver' => env('SESSION_DRIVER', 'database') 并生成所需的会话表。

但是当我尝试登录应用程序时,我在 VerifyCsrfToken.php 第 67 行收到 TokenMismatchException:如果我更改 SESSION_DRIVER=file,则应用程序按预期工作。

但在 Laravel 5.1 版本中并非如此。

Laravel 5.2 版本有哪些变化,将用户会话存储到数据库需要哪些步骤?

【问题讨论】:

  • 将驱动程序更改为数据库后尝试清理缓存和cookie。
  • 你创建了会话表吗?
  • @TheFallen 我清除了缓存和 cookie 但没有运气。我创建了会话表。
  • 尝试通过输出\Session::get('_token');进行调试,并将其与此方法vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php@第107行的两个标记进行比较

标签: laravel


【解决方案1】:

我也必须自己处理这个问题。因此,最初的步骤与您在问题中已经提到的一样。

  • 在全新安装 laravel 并验证一切正常时,将 SESSION_DRIVER=file 更改为 SESSION_DRIVER=database

  • 在应用目录中的控制台中按顺序运行以下命令:

    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

【讨论】:

    【解决方案2】:

    看起来可以手动使用它,但你为什么不使用php artisan make:auth 它创建了您进行身份验证所需的一切,还可以帮助您保持会话而不是手动进行?

    【讨论】:

    • 如果我使用 php artisan make:auth,那么我将无法使用我的自定义身份验证。我只想在数据库中进行用户会话并跟踪用户登录和注销时间。
    • 我知道你不会使用你的身份验证,我的意思是它会构建任何东西而不是你,你也可以像你构建它一样跟踪你想要的任何东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 2016-09-05
    • 2015-06-18
    • 1970-01-01
    • 2017-05-13
    • 2015-03-25
    • 1970-01-01
    相关资源
    最近更新 更多