Ce package fournit une route signée temporaire qui se connecte à un utilisateur. Ce qu'il ne fournit pas, c'est un moyen d'envoyer réellement le lien vers l'itinéraire vers l'utilisateur. C'est parce que je ne veux pas faire d'hypothèses sur la façon dont vous communiquez avec vos utilisateurs.
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
}Étant donné que certains sites ont plus d'un modèle de type utilisateur (utilisateurs, administrateurs, etc.), vous pouvez utiliser un trait pour configurer les configurations par défaut pour chaque type d'utilisateur. Les méthodes ci-dessous sont fournies par le trait, vous n'avez donc qu'à inclure celles pour lesquelles vous souhaitez utiliser une valeur différente.
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 ' );
}
} Si vous utilisez le trait de mot de passe enLogin, vous pouvez générer un lien en utilisant les valeurs par défaut définies dans le trait en appelant simplement createPasswordlessLoginLink() sur l'utilisateur que vous souhaitez vous connecter.
La plus grande erreur que j'ai pu voir quelqu'un faire avec ce package est de créer un lien de connexion pour un utilisateur et de l'envoyer à un autre. Veuillez faire attention et tester votre code. Je ne veux pas que quiconque se fâche contre moi pour la bêtise de quelqu'un d'autre.
Vous pouvez publier le fichier de configuration ou simplement définir les valeurs que vous souhaitez utiliser dans votre fichier .env:
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 est le modèle authentitable dans lequel vous vous connectez (généralement app utilisateur)
LPL_REMEMBER_LOGIN est de savoir si vous voulez vous souvenir de la connexion (comme la vérification de l'utilisateur Remember Me)
LPL_LOGIN_ROUTE est l'itinéraire qui pointe vers la fonction de connexion que ce package fournit. Assurez-vous de ne pas entrer en collision avec l'un de vos autres itinéraires.
LPL_LOGIN_ROUTE_NAME est le nom du lpl_login_route. Encore une fois, assurez-vous qu'il ne se heurte à aucun de vos noms d'itinéraire existants.
LPL_LOGIN_ROUTE_EXPIRES est le nombre de minutes pour lesquelles le lien est bon. Je vous recommande de définir la valeur la plus courte qui a du sens pour votre cas d'utilisation.
LPL_REDIRECT_ON_LOGIN est l'endroit où vous souhaitez envoyer l'utilisateur après avoir connecté en cliquant sur leur lien magique.
LPL_USE_ONCE est de savoir si vous souhaitez qu'un lien expire après la première utilisation (utilise le cache pour stocker les liens utilisés)
LPL_INVALID_SIGNATURE_MESSAGE est un message personnalisé envoyé lorsque nous avorons avec un statut 401 sur un lien non valide ou expiré. Vous pouvez également ajouter une logique personnalisée sur la façon de gérer des liens non valides ou expirés en gérant InvalidSignatureException et ExpiredSignatureException dans votre fichier Handler.php .
Pour les problèmes de sécurité, veuillez m'envoyer un courriel directement à [email protected]. Pour tout autre problème, utilisez le tracker du problème ici.
Je salue l'aide de la communauté pour améliorer et maintenir tous mes forfaits. Soyez juste gentil les uns avec les autres. N'oubliez pas que nous essayons tous de faire de notre mieux.