Auth::user 未在重定向时保留
Auth::user is not preserved on redirect
在我从 laravel 5.1 更新到 5.2 后,我遇到了这个意想不到的问题。我使用 Auth::login
手动登录用户。当我重定向用户时,不保留。
所有配置都是从清晰的 laravel 5.2 安装中优雅地移植过来的。
这是路线代码:
Route::group([ 'middleware' => [ 'web' ] ], function () {
Route::get('test', function () {
$user = \Upping\Models\User::find(311);
Auth::login($user);
Auth::check(); // true
return redirect('authCheck');
});
Route::get('authCheck', function () {
Auth::check(); // false
});
});
config\auth.php -> 提供商
'users' => [
'driver' => 'eloquent',
'model' => \Upping\Models\User::class,
],
说到laravel的经验,一点提示对我来说应该足够了。感谢您的帮助。
你把所有的路由都放在里面了吗:
Route::group(['middleware' => ['web']], function () {
// here your routes
});
?如果没有,您应该这样做,因为在 Laravel 5.2 中,默认情况下会为 web
组中间件启动会话。详情见Routing documentation
编辑
如果不是这种情况 - 我看到您使用用于登录的自定义用户 class \Upping\Models\User
。你在providers -> users -> model
中的config/auth.php
中是否设置了相同的class?
所以真正的原因有点far-fetched。我阅读了错误日志并认为是 Zend Z-ray 及其 laravel 插件意味着 5.2 更新。
在我关闭它后,一切都开始正常运行。
在我从 laravel 5.1 更新到 5.2 后,我遇到了这个意想不到的问题。我使用 Auth::login
手动登录用户。当我重定向用户时,不保留。
所有配置都是从清晰的 laravel 5.2 安装中优雅地移植过来的。
这是路线代码:
Route::group([ 'middleware' => [ 'web' ] ], function () {
Route::get('test', function () {
$user = \Upping\Models\User::find(311);
Auth::login($user);
Auth::check(); // true
return redirect('authCheck');
});
Route::get('authCheck', function () {
Auth::check(); // false
});
});
config\auth.php -> 提供商
'users' => [
'driver' => 'eloquent',
'model' => \Upping\Models\User::class,
],
说到laravel的经验,一点提示对我来说应该足够了。感谢您的帮助。
你把所有的路由都放在里面了吗:
Route::group(['middleware' => ['web']], function () {
// here your routes
});
?如果没有,您应该这样做,因为在 Laravel 5.2 中,默认情况下会为 web
组中间件启动会话。详情见Routing documentation
编辑
如果不是这种情况 - 我看到您使用用于登录的自定义用户 class \Upping\Models\User
。你在providers -> users -> model
中的config/auth.php
中是否设置了相同的class?
所以真正的原因有点far-fetched。我阅读了错误日志并认为是 Zend Z-ray 及其 laravel 插件意味着 5.2 更新。
在我关闭它后,一切都开始正常运行。