在 Laravel 中创建具有不同数据库字段的自定义身份验证控制器
create custom authenticate controller with different database filed in Laravel
Auth::attempt(['u_email'=>$credentials['email'],'u_password'=>sha1($credentials['password'])])
我正在使用此代码进行身份验证,但出现 Undefined index: password
错误任何人都可以帮助创建自定义身份验证控件而不更改供应商库
在此先感谢您对我的帮助...
您需要做 3 件事。
将纯文本密码传递给 Auth::attempt(),因为 Laravel 会在根据存储在数据库。
Auth::attempt(['u_email'=>$credentials['email'],'password' => $credentials['password']]);
将密码作为 password,而不是 u_password 传递给 Auth::尝试()。密钥不需要匹配密码列名称(为什么?请参见第 3 点),但它必须等于 password - 例如参见第 1 点。
在您的用户模型中实施 getAuthPassword() 方法,这将 return 值 u_password栏目。用户提供者使用此方法来获取密码哈希,该哈希稍后会根据传递给 Auth::attempt()
的内容进行验证
//in your User.php
public function getAuthPassword() {
return $this->u_password;
}
Auth::attempt(['u_email'=>$credentials['email'],'u_password'=>sha1($credentials['password'])])
我正在使用此代码进行身份验证,但出现 Undefined index: password
错误任何人都可以帮助创建自定义身份验证控件而不更改供应商库
在此先感谢您对我的帮助...
您需要做 3 件事。
将纯文本密码传递给 Auth::attempt(),因为 Laravel 会在根据存储在数据库。
Auth::attempt(['u_email'=>$credentials['email'],'password' => $credentials['password']]);
将密码作为 password,而不是 u_password 传递给 Auth::尝试()。密钥不需要匹配密码列名称(为什么?请参见第 3 点),但它必须等于 password - 例如参见第 1 点。
在您的用户模型中实施 getAuthPassword() 方法,这将 return 值 u_password栏目。用户提供者使用此方法来获取密码哈希,该哈希稍后会根据传递给 Auth::attempt()
的内容进行验证//in your User.php public function getAuthPassword() { return $this->u_password; }