php – Laravel手动身份验证:Auth :: try总是错误的

我正在使用laravel手动身份验证系统.提交表单重定向到下面显示的此路由.并且在authenticate()函数中,名称和密码永远不会匹配我之前存储的.即Auth ::尝试总是错误的.
Route::post('/logintest','mycontroller@authenticate');
    Route::get('/home',['middleware' => 'auth',function() {
  echo "home page";});
}]);

验证功能:

public function authenticate(Request $request)
         {
            $input=$request->all();
            $password=$input['password'];
            $name=$input['name'];

            if (Auth::attempt(['Name' => $name,'Password' => $password]) ){
            return redirect()->intended('/home');
        }   else 
          {
                return redirect('/login')->with('message','Error logging in!');
            }
        }

我以这种方式注册了用户.使用bcrypt()对密码进行哈希处理.功能.但在authenticate()函数中,我正在与普通密码进行比较.我在某处读取Auth会自动处理它.或者我是否应该在config / auth.php中更改某些内容,因为我使用了名称来验证而不是用户名?

public function register(Request $request)
{
    $input=$request->all();
    $password=bcrypt($input['password']);
    $name=$input['name'];
    $insert= User::insert(['Name'=>$name,'Password'=>$password]);
    return redirect('/login')
            ->with('message','successfully Registered.');
}
这些名字有问题. Auth @ attempt将获取除密码(区分大小写)以外的所有凭据,您在该数组中传递并运行where查询(这是您可以为尝试添加额外约束的方式,因为它们只是条件的位置).如果找到模型,那么将对您传递的密码凭据(区分大小写)以及从$model-> getAuthPassword()获取的模型散列密码进行散列检查.

凭证中的此字段是特殊的,因为它是Auth所需要的,因此它知道凭证中的哪个字段是密码.它与您在users表上使用的字段没有直接关联,并且必须在凭证数组中命名为password.除了“密码”之外,您传递的凭据中的其他字段会直接与用户表上的字段相关联,因为它们是该表上数据库查询的条件.

如果您使用表格上的“密码”以外的字段作为密码,则必须在用户模型中声明.在您的情况下,您使用的是“密码”. (这是所有区分大小写的)

class User ....
{
    ...
    public function getAuthPassword()
    {
        return $this->Password; // case sensitive
    }
    ...
}

传递凭据时,您传递纯文本密码,因为会发生hash_check,而不是直接比较.

您可以在实际表格中为字段命名,只需要让Eloquent知道这一点.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


laravel的dd函数不生效怎么办
看不懂laravel文档咋办
安装laravel框架出现command怎么办
Laravel开发API怎么使用事务
laravel怎么构建复杂查询条件
laravel如何实现防止被下载
为什么laravel比yii火
一些常见的Laravel定时任务不运行的问题
laravel用路由有什么好处
composer无法安装laravel怎么办
laravel现在还用吗
laravel怎么替换主键id
laravel的appurl有什么用
如何修改Laravel的报错输出形式
laravel怎么避免foreach查表
laravel怎样操作数据库
laravel怎么截取字符串
laravel 是国内的吗
laravel怎么设置请求头
浅析Laravel社区Redis组件报错的问题和解决方法