目前,我正在工作或流明(Laravel的微框架),我已在该应用程序中集成了护照以供用户登录。
当客户告诉我我们需要使用用户名或电子邮件登录时,我才陷入困境!
我通过更改流明护照内部代码来完成此操作
vendor / laravel / passport / src / Bridge / UserRepository.php 在此我已将 getUserEntityByUserCredentials 功能代码更新为
public function getUserEntityByUserCredentials($username, $password, $grantType, ClientEntityInterface $clientEntity)
{
$provider = config('auth.guards.api.provider');
if (is_null($model = config('auth.providers.'.$provider.'.model'))) {
throw new RuntimeException('Unable to determine user model from configuration.');
}
if (method_exists($model, 'findForPassport')) {
$user = (new $model)->findForPassport($username);
} else {
$user = (new $model)->where('email', $username)->orWhere('username', $username)->first();
}
if (! $user ) {
return;
} elseif (method_exists($user, 'validateForPassportPasswordGrant')) {
if (! $user->validateForPassportPasswordGrant($password)) {
return;
}
} elseif (! $this->hasher->check($password, $user->password)) {
return;
}
return new User($user->getAuthIdentifier());
}
现在,每当我需要更改此代码时,我都会更新供应商目录。
我可以忍受这种头痛的任何简单方法。
任何帮助表示赞赏 提前谢谢。
答案 0 :(得分:3)
我不知道这很简单,我今天刚试过,我成功了,
@HostListener('window:beforeunload', ['$event'])
beforeunloadHandler(event) {
// actions
}
我只是将此方法添加到 App \ User.php ,它可以完美地运行。