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 更新。

在我关闭它后,一切都开始正常运行。