Laravel不记得登录

时间:2016-06-17 03:49:37

标签: php laravel authentication

我在Larave中使用手动身份验证,这是我的代码功能

public function doLogin(){
  // create our user data for the authentication
  $userdata = array(
    'username' => Input::get('username'),
    'password' => Input::get('password')
  );

  // attempt to do the login
  if (Auth::attempt($userdata,true)) {
    return (Auth::check() ? 'true' : 'false');
  }
  else {
    // validation not successful, send back to form
    return (Auth::check() ? 'true' : 'false');
  }
}

登录后,Auth::check返回true。但浏览到具有此构造函数的受保护路由后

public function __construct()
{
  $this->middleware('auth');
}

即使在登录后,中间件也会再次将我重定向到登录页面。

Auth中间件从未被修改过。我需要做哪些修改吗?

我也尝试过自定义中间件:

class LoginCheck
{
    public function handle($request, Closure $next)
    {
      if (!Auth::check()) {
          if ($request->ajax() || $request->wantsJson()) {
              return response('Unauthorized.', 401);
          } else {
              return redirect('login');
          }
      }
        return $next($request);
    }
}

仍然无效,意味着Auth :: check()正在返回false

Cookie配置为存储会话,但仍然无效。

1 个答案:

答案 0 :(得分:0)

这很奇怪,但是......

我创建了一个新的Laravel项目。复制了所有MVC和路由(仅限于此),但不包括auth的所有内容。然后我做了php artisan make:auth,它有效,我完全不知道为什么。

好像我一定是搞错了。

顺便说一句,感谢所有的帮助!