【问题标题】:laravel Auth::check false after redirect重定向后 laravel Auth::check false
【发布时间】:2016-05-28 12:02:07
【问题描述】:

我有点吃不消了。我正在使用 Auth::login() 登录管理员。但是在我登录他(登录通过并且此时 Auth::check 返回 true)并使用 redirect::route() 到管理面板后,Auth::check 返回 false。我检查了其他解决方案,但我的路由放置在 web 中间件组中,因此会话应该可以正常工作。有什么想法吗?

认证的最后部分

$admin = $this->setAdmin($user); 
Auth::login($admin); 
return Redirect::route('admin.panel');

路由(它们也包含在 ['middleware' => ['web']])

Route::group(['middleware' => 'auth', 'namespace' => 'Admin'], function(){ 
        Route::get('/', [ 'as' => 'admin.panel', 'uses' => 'AdminController@index' ]); 
    })

基本中间件

if (Auth::check()) {
  return $next($request); 
} 
return redirect('/');

【问题讨论】:

  • 请贴一些代码。
  • 好吧,这没什么好说的` $admin = $this->setAdmin($user);验证::登录($admin); return Redirect::route('admin.panel');` 然后管理面板在 auth 中间件组 `Route::group(['middleware' => 'auth', 'namespace' => 'Admin'] , function(){ Route::get('/', [ 'as' => 'admin.panel', 'uses' => 'AdminController@index' ]); });` 而且中间件也很基础` if (Auth::check()) { return $next($request); } 返回重定向('/');`
  • 顺便说一下,我刚刚用 session(['key' => 'tatat']); 快速检查了会话。重定向后我得到相同的值,所以会话很好。我没提,但是我把laravel默认的认证控制器都删了,会不会是这个原因?
  • 在问题部分发帖

标签: laravel authentication


【解决方案1】:

我没有正确阅读 Auth::login 的工作原理,显然,即使您想手动登录用户,数据库(用户表)中也必须有一个条目。

【讨论】:

    猜你喜欢
    • 2016-06-08
    • 2018-12-19
    • 2017-06-25
    • 2018-01-07
    • 2018-09-03
    • 2018-09-08
    • 1970-01-01
    • 2015-12-14
    • 2014-10-01
    相关资源
    最近更新 更多