简体   繁体   English

Laravel Passport:使用自定义用户名和密码创建令牌

[英]Laravel Passport: create token with custom username and password

In my application, I am username as email or phone number.在我的应用程序中,我的用户名是 email 或电话号码。 so username can be email or phone number.所以用户名可以是 email 或电话号码。 But laravel passport accepts username as email.但是 laravel 护照接受的用户名是 email。 And I want to generate password grant type token with email and password or phone_no and password.我想用 email 和密码或 phone_no 和密码生成密码授予类型令牌。 so required values to generate token will be所以生成令牌所需的值将是

  1. email/password电子邮件/密码
  2. phone_no/password How can I generate token with phone_no as username? phone_no/password 如何以 phone_no 作为用户名生成令牌?

Use findForPassport method in user model.在用户 model 中使用 findForPassport 方法。 Like below像下面

class User  extends Authenticatable {

        use HasApiTokens;
    
        public function findForPassport($username) {
            return self::firstWhere('email', $username) ?? self::firstWhere('phone_no',  $username);
        }

 }

Also you can read this document https://laravel.com/docs/8.x/passport#customizing-the-username-field您也可以阅读此文档https://laravel.com/docs/8.x/passport#customizing-the-username-field

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM