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 身份验证注销错误的主要内容,如果未能解决你的问题,请参考以下文章