Laravel 4 身份验证注销错误

Posted

技术标签:

【中文标题】Laravel 4 身份验证注销错误【英文标题】:Laravel 4 authentication logout error 【发布时间】:2014-07-19 07:52:17 【问题描述】:

我正在为我的 Laravel 4 项目开发登录/注销身份验证例程,但在注销时遇到了问题。

我已经设置了一个用户表,其中包含用户名、电子邮件和密码(以及 id 和时间戳列)。如果我浏览到受保护的页面,我可以使用系统对话框正常登录,但注销会产生错误。以下是我的相关路线:

        Route::get('/logout', function()
    
        Auth::logout();
        return View::make('logout');
    );

    Route::get('spotlight', array(
        'before' => 'auth.basic' ,
        function()
    
        return View::make('spotlight');
    
    ));

这是我转到 /logout 时遇到的错误:

[2014-05-29 17:33:56] production.ERROR: exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'remember_token' in 'field list' (SQL: update `users` set `updated_at` = 2014-05-29 17:33:56, `remember_token` = KiZHAYFKZnr0qwntsu0FhXWdwS37KkaQO1omS1OTnJ6DjpbmU9QXQenS7uGc where `id` = 1)' in /Users/jlowery/authapp/vendor/laravel/framework/src/Illuminate/Database/Connection.php:555

remember_token 应该在哪里?我已经设置了一个会话表,但它没有这样的列。关于我哪里出错的任何想法?

【问题讨论】:

【参考方案1】:

您没有正确更新到 >=4.1.26 版本。

如果您使用 Eloquent 身份验证驱动程序,则需要将 remember_token 添加到您的用户表并更新您的 User 模型。

阅读 Laravel 文档中的 upgrade guide 了解更多详情。

【讨论】:

啊哈!那行得通。那么,如果我运行 composer update 并为我的项目安装 Laravel,那会包括用户模型更新吗? 没有。您运行了 composer update,但您必须进行一些手动调整。由于必须修复的安全问题,这是一次“破坏性”更新。必须手动完成。 谢谢 - 我有一个与登录相关的问题 - 我会发布另一个问题,希望你能看看。

以上是关于Laravel 4 身份验证注销错误的主要内容,如果未能解决你的问题,请参考以下文章

Sanctum Laravel 8 用于 API 身份验证的问题(不会在注销时删除令牌)

Laravel 5.5 无法使用身份验证脚手架登录

laravel 和 vuejs 的身份验证问题

Laravel 4.x 关于扩展身份验证的文档是不是错误?

仅在 Laravel 中公开某些身份验证路由

laravel 5.2 身份验证 - 缺少链接