阅读(2797) (7)

Laravel 8 自定义用户名字段

2021-07-09 12:59:40 更新

当使用密码验证时,Passport 会在模型中使用 email 属性作为「username」。不过,你仍然可以通过在模型中定义 findForPassport 方法来自定义验证行为:

<?php

namespace AppModels;

use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
use LaravelPassportHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    /**
     * 通过给定的username获取用户实例
     *
     * @param  string  $username
     * @return AppModelsUser
     */
    public function findForPassport($username)
    {
        return $this->where('username', $username)->first();
    }
}