在 Laravel 5.8 使用帳號或信箱進行 Passport 認證

做法

User 模型新增 findForPassport() 方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
use HasApiTokens;

/**
* @param $username
* @return mixed
*/
public function findForPassport($username) {
$field = filter_var($username, FILTER_VALIDATE_EMAIL)
? 'email'
: 'username';

return $this->where($field, $username)->first();
}