So verwenden Sie Laravel Passport mit einer benutzerdefinierten Benutzernamensspalte

Lesezeit: 1 Minute

So verwenden Sie Laravel Passport mit einer benutzerdefinierten Benutzernamensspalte
tehcpu

Jetzt verwende ich so etwas, um den Benutzer auf meiner Basis-Site zu authentifizieren:

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

Wie kann ich diesen Code ändern, um eine benutzerdefinierte Spalte als Benutzernamen zu verwenden?
https://laravel.com/docs/5.3/passport#password-grant-tokens

Sie können die findForPassport-Methode in Ihrem Benutzermodell verwenden.

Diese Methode nimmt den Benutzernamen als Argument und gibt das Benutzermodell zurück

Beispielsweise:

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    // ... some code

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

  • Wie wäre es, wenn das Passwort auch in einer separaten Datenbanktabelle gespeichert ist? Oder wenn die Anmeldeinformationen von einer Drittanbieter-API (unter der Haube) validiert werden?

    – Yannick Y

    20. Dezember ’16 um 2:34

  • Wenn Ihre benutzerdefinierte Spalte heißt username du möchtest vielleicht verwenden return $this->where('username','=', $username)->first();

    – Adam

    17. Februar ’21 um 13:59

  • Was ist, wenn ich mich sowohl mit E-Mail als auch mit Handynummer anmelden muss?

    – Swatantra

    1. Okt ’21 um 9:54

  • @swatantra du kannst sowas verwenden wie $this->where(fn($q) => $q->where('email', $username)->orWhere('phone', $username));

    – Alexander

    5. Okt ’21 um 12:54

  • Ja genau das habe ich schon gemacht und es hilft, Danke

    – Swatantra

    6. Okt ’21 um 8:25

Ein bisschen zu spät für eine Antwort, aber es ist mir schwer gefallen, dies herauszufinden, also der Vollständigkeit halber und um vielleicht anderen in Zukunft zu helfen.

Wenn du es dir anschaust dieser Teil des Passcodes Sie werden sehen, dass es auch nach einem sucht validateForPassportPasswordGrant -Methode, so können Sie zusätzlich zu Alexanders Antwort einen Benutzer mit benutzerdefinierten Feldern authentifizieren.

Hoffe es hilft jemandem.

.

294650cookie-checkSo verwenden Sie Laravel Passport mit einer benutzerdefinierten Benutzernamensspalte

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy