Dieses Paket bietet eine temporäre signierte Route, die sich in einem Benutzer anmeldet. Was es nicht bietet, ist eine Möglichkeit, den Link an die Route an den Benutzer zu senden. Dies liegt daran, dass ich keine Annahmen darüber treffen möchte, wie Sie mit Ihren Benutzern kommunizieren.
composer require grosv/laravel-passwordless-login
use App User ;
use Grosv LaravelPasswordlessLogin LoginUrl ;
function sendLoginLink ()
{
$ user = User :: find ( 1 );
$ generator = new LoginUrl ( $ user );
$ generator -> setRedirectUrl ( ' /somewhere/else ' ); // Override the default url to redirect to after login
$ url = $ generator -> generate ();
//OR Use a Facade
$ url = PasswordlessLogin :: forUser ( $ user )-> generate ();
// Send $url in an email or text message to your user
}
Da einige Websites mehr als ein Modell vom Typ Benutzer haben (Benutzer, Administratoren usw.), können Sie ein Merkmal verwenden, um die Standardkonfigurationen für jeden Benutzertyp einzurichten. Die folgenden Methoden sind vom Merkmal bereitgestellt, sodass Sie nur diejenigen einbeziehen müssen, für die Sie einen anderen Wert verwenden möchten.
use Grosv LaravelPasswordlessLogin Traits PasswordlessLogin ;
use Illuminate Foundation Auth User as Authenticatable ;
class User extends Authenticatable
{
use PasswordlessLogin ;
public function getGuardNameAttribute (): string
{
return config ( ' laravel-passwordless-login.user_guard ' );
}
public function getShouldRememberLoginAttribute (): bool
{
return config ( ' laravel-passwordless-login.remember_login ' );
}
public function getLoginRouteExpiresInAttribute (): int
{
return config ( ' laravel-passwordless-login.login_route_expires ' );
}
public function getRedirectUrlAttribute (): string
{
return config ( ' laravel-passwordless-login.redirect_on_success ' );
}
}
Wenn Sie das KennwortlessLogin -Merkmal verwenden, können Sie einen Link mit den in der Eigenschaft definierten Standardeinstellungen generieren, indem Sie einfach createPasswordlessLoginLink()
auf dem Benutzer aufrufen, in dem Sie sich anmelden möchten.
Der größte Fehler, den ich mit diesem Paket sehen konnte, besteht darin, einen Login -Link für einen Benutzer zu erstellen und ihn an einen anderen zu senden. Bitte seien Sie vorsichtig und testen Sie Ihren Code. Ich möchte nicht, dass jemand sauer auf mich wegen der Albernheit eines anderen wird.
Sie können die Konfigurationsdatei veröffentlichen oder einfach die Werte festlegen, die Sie in Ihrer .Env -Datei verwenden möchten:
LPL_USER_MODEL = AppUser
LPL_REMEMBER_LOGIN = false
LPL_LOGIN_ROUTE = /magic-login
LPL_LOGIN_ROUTE_NAME = magic-login
LPL_LOGIN_ROUTE_EXPIRES = 30
LPL_REDIRECT_ON_LOGIN = /
LPL_USER_GUARD = web
LPL_USE_ONCE = false
LPL_INVALID_SIGNATURE_MESSAGE = " Expired or Invalid Link "
LPL_USER_MODEL
ist das authentifizierbare Modell, in dem Sie sich anmelden (normalerweise App Benutzer)
LPL_REMEMBER_LOGIN
ist, ob Sie sich an die Anmeldung erinnern möchten (wie der Benutzer, der überprüft wird, erinnere mich an mich)
LPL_LOGIN_ROUTE
ist die Route, die auf die Anmeldefunktion verweist, die dieses Paket bietet. Stellen Sie sicher, dass Sie nicht mit einer Ihrer anderen Routen kollidieren.
LPL_LOGIN_ROUTE_NAME
ist der Name des LPL_Login_Route. Stellen Sie erneut sicher, dass es mit keinem Ihrer vorhandenen Routennamen kollidiert.
LPL_LOGIN_ROUTE_EXPIRES
ist die Anzahl der Minuten, für die der Link gut ist. Ich empfehle Ihnen, den kürzesten Wert festzulegen, der für Ihren Anwendungsfall sinnvoll ist.
LPL_REDIRECT_ON_LOGIN
möchten den Benutzer senden, nachdem er sich angemeldet hat, indem er auf den magischen Link klickt.
LPL_USE_ONCE
ist, ob ein Link nach dem ersten Gebrauch abläuft (verwendet Cache, um gebrauchte Links zu speichern).
LPL_INVALID_SIGNATURE_MESSAGE
ist eine benutzerdefinierte Nachricht, die gesendet wird, wenn wir mit einem 401 -Status auf einem ungültigen oder abgelaufenen Link abbrechen. Sie können auch eine benutzerdefinierte Logik hinzufügen, wie Sie mit ungültigen oder abgelaufenen Links umgehen, indem Sie InvalidSignatureException
und ExpiredSignatureException
in Ihrer Handler.php
-Datei bearbeiten.
Für Sicherheitsprobleme senden Sie mir bitte eine E -Mail direkt unter [email protected]. Verwenden Sie für alle anderen Probleme den Problemverfolger hier.
Ich begrüße die Hilfe der Community bei der Verbesserung und Aufrechterhaltung aller meiner Pakete. Sei einfach nett zueinander. Denken Sie daran, wir alle versuchen nur, unser Bestes zu geben.