Laravel 8 自定义用户名字段
当使用密码验证时,Passport 会在模型中使用 email
属性作为「username」。不过,你仍然可以通过在模型中定义 findForPassport
方法来自定义验证行为:
<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
/**
* 通过给定的username获取用户实例
*
* @param string $username
* @return \App\Models\User
*/
public function findForPassport($username)
{
return $this->where('username', $username)->first();
}
}