使用用户名或电子邮件登录流明护照

时间:2017-12-04 12:48:16

标签: php laravel-5 lumen laravel-passport lumen-5.3

目前,我正在工作或流明(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());
}

现在,每当我需要更改此代码时,我都会更新供应商目录。

我可以忍受这种头痛的任何简单方法。

任何帮助表示赞赏 提前谢谢。

1 个答案:

答案 0 :(得分:3)

我不知道这很简单,我今天刚试过,我成功了,

@HostListener('window:beforeunload', ['$event'])
beforeunloadHandler(event) {
    // actions
}

我只是将此方法添加到 App \ User.php ,它可以完美地运行。

相关问题