繁体   English   中英

laravel 5.1登录无法正常工作

[英]laravel 5.1 login not working

我使用laravel 5.1身份验证进行登录。 Auth::attempt($credentials)始终返回false!

我使用以下途径创建用户:

Route::get('newuser', function () {
  return User::create([
    'username' => 'admin',
    'email' => 'admin@gmail.com',
    'password' => Hash::make('123'),
  ]);
});

我添加了一个简单的postLogin函数来覆盖AuthController中的该函数:

public function postLogin(Request $request) {
    $credentials = $this->getCredentials($request);
    if(Auth::attempt($credentials)) {
        return 'ok';
    }
    return 'nok';
}

getCredentials是具有以下内容的laravel函数:

protected function getCredentials(Request $request)
{
    return $request->only($this->loginUsername(), 'password');
}

这件事可能有多种原因。 我建议您在用户表中检查phpMyAdmin中密码列的长度。

在存储密码的表中,将密码列更改为数据库中的最大长度。

另一个我建议您尝试使用下面的代码,如果它起作用。

 public function postLogin()
   {
    // Login credentials
    $credentials = array(
        'username'    => 'admin@gmail.com',
        'password' => '123',
    );
   // Authenticate the user
   if (Auth::attempt($credentials))
{
    return 'ok';
}
else{
    return "failed";
}

希望这会有所帮助。

  1. 不要忘记更改数据库中的密码列长度,将其更改为最大。

  2. 将密码数据类型更改为LONGTEXT,长度为maximun或1000。

最后也是重要的一点是,删除表中的所有记录并重新启动该过程,因为私下保存的传递密码已保存了另一笔长度,原因是当前的哈希密码与旧密码不匹配。

因此,截断该表,然后重试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM