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.
.
2946500cookie-checkSo verwenden Sie Laravel Passport mit einer benutzerdefinierten Benutzernamensspalteyes