web-dev-qa-db-ja.com

使用方法Laravel Passport with custom username column

現在、私はベースサイトのユーザーを認証するためにそのようなものを使用しています:

if (Auth::attempt($request->only(['id', 'password']))) {
            //
}

ユーザー名としてカスタム列を使用するためにこのコードを変更するにはどうすればよいですか? https://laravel.com/docs/5.3/passport#password-grant-tokens

30
tehcpu

ユーザーモデルでfindForPassportメソッドを使用できます。

このメソッドは引数としてユーザー名を取り、ユーザーモデルを返します

例えば:

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    // ... some code

    public function findForPassport($username) {
        return $this->where('id', $username)->first();
    }
}
81
Alexander

答えるには少し遅すぎますが、完全を期すためと、将来的に他の人を助けるために、私はこれを理解しようとして苦労しています。

パスポートのコードのこの部分 を見ると、validateForPassportPasswordGrantメソッドも検索していることがわかります。そのため、Alexanderの答えに加えて、ユーザーを認証する方法です。カスタムフィールドを使用します。

それが誰かを助けることを願っています。

6
freddieRV