Jos*_*oon 3 php laravel-5 laravel-passport laravel-5.4
我目前正在构建一个与更大的应用程序(Zend 1.x)一起工作的应用程序(使用 Laravel)。
我使用 Laravel Passport 进行 API 身份验证。我需要将 Laravel Passport 默认哈希机制更改为 Zend 哈希才能进行身份验证。
有人可以向我指出一个 API 或我需要重写才能运行它的东西吗?我不想编辑核心 Laravel Passport 代码。
我已经看到了创建自定义用户提供程序和修改validateCredentials()方法的建议,但这些都是针对核心 Laravel 的。
我已经在 User 类中使用 findForPassport 方法来覆盖用户名字段。
public function findForPassport($username)
{
return $this->where('email', $username)->first();
}
Run Code Online (Sandbox Code Playgroud)
对于任何想知道的人,您可以重写 User 类中的 2 个方法(可能更多)来处理自定义 Laravel Passport 身份验证:
/**
* Override the field which is used for username in the authentication
*/
public function findForPassport($username)
{
return $this->where('email', $username)->first();
}
/**
* Add a password validation callback
*
* @param type $password
* @return boolean Whether the password is valid
*/
public function validateForPassportPasswordGrant($password)
{
$hasher = new HSAUserHasher(); // Or whomever does your hashing
$result = $hasher->create_hash($password, $this->salt);
$hashedPassword = $result['password'];
return $hashedPassword == $this->password;
}
Run Code Online (Sandbox Code Playgroud)
感谢 Laravel slack 论坛 ( https://larachat.slack.com ) 上的 @redviking 帮助我找到答案。
| 归档时间: |
|
| 查看次数: |
1701 次 |
| 最近记录: |