【问题标题】:Laravel 4 authentication logout errorLaravel 4 身份验证注销错误
【发布时间】: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 应该在哪里?我已经设置了一个会话表,但它没有这样的列。关于我哪里出错的任何想法?

【问题讨论】:

    标签: authentication laravel laravel-routing


    【解决方案1】:

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

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

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

    【讨论】:

    • 啊哈!那行得通。那么,如果我运行 composer update 并为我的项目安装 Laravel,那会包括用户模型更新吗?
    • 没有。您运行了 composer update,但您必须进行一些手动调整。由于必须修复的安全问题,这是一次“破坏性”更新。必须手动完成。
    • 谢谢 - 我有一个与登录相关的问题 - 我会发布另一个问题,希望你能看看。
    猜你喜欢
    • 2016-11-14
    • 2017-08-29
    • 2013-12-27
    • 2015-05-25
    • 2013-09-09
    • 2015-06-20
    • 2015-06-14
    • 1970-01-01
    • 2011-06-03
    相关资源
    最近更新 更多