Maison > développement back-end > tutoriel php > Reconnectez-vous à Laravel5.4 pour implémenter le passage au partage de code de la page de pré-connexion

Reconnectez-vous à Laravel5.4 pour implémenter le passage au partage de code de la page de pré-connexion

小云云
Libérer: 2023-03-20 06:10:02
original
1946 Les gens l'ont consulté

Nous rencontrons parfois un délai d'expiration après la connexion de l'utilisateur, et les utilisateurs doivent se reconnecter après un délai d'attente. Cet article vous présente principalement les principes et les méthodes de reconnexion dans Laravel 5.4 pour accéder à la page de pré-connexion, j'espère. ça peut aider tout le monde.

1. Scénarios d'application :

Il y a un délai d'expiration après la connexion de l'utilisateur, et l'utilisateur doit se reconnecter après le délai d'expiration. Exemple : lorsque l'utilisateur est sur la page /user/2 et que la page de connexion expire, l'utilisateur sera redirigé vers la page de connexion. Après s'être connecté, l'utilisateur doit toujours être sur /user/2 au lieu de home/index.

2. Principe de mise en œuvre

Après avoir déterminé que l'utilisateur a expiré, stockez l'adresse URL actuelle de l'utilisateur dans la session et accédez à cette adresse URL après la prochaine connexion.

3. Implémentation spécifique dans Laravel

Middleware de routage (détermination du statut de connexion) Ici, le statut de connexion de l'utilisateur est déterminé en fonction de l'expiration du cookie. et l'exécution, et ne fait rien de redondant. Fonctionnement (j'utilise la valeur du cookie $token comme stockage de la clé de session lors de la connexion), le code est le suivant :

public function handle($request, Closure $next) {
 //判断cookie是否存在
 if ($token = Cookie::get('token')) {
 //判断session信息,保持状态一致
 if ($request->session()->get($token)) {
  return $next($request);
 }
 }

 //获取当前url,跳转到登陆页
 $returnUrl = urlencode($request->getRequestUri());

 return redirect('/login?reurl=' . $returnUrl); }
Copier après la connexion

Côté connexion ( traitement de l'interaction avec la page et logique de saut) Ce qui est fait ici est de sauter Aller à la page de connexion Cela peut être implémenté dans le middleware Seule cette phrase, avec des implémentations flashant la reurl pour une utilisation frontale.

return redirect('/')->with('reurl', $returnUrl);
Copier après la connexion

Côté page (pour déterminer les informations sur la mémoire flash) Pour déterminer les informations sur la mémoire flash, il y a des connexions ajax et de soumission. Il devrait y avoir très peu de soumissions. puis connectez-vous au backend pour déterminer la réurl.

 @if (session('reurl'))
  <input type="hidden" name="reurl" value="{{ session(&#39;reurl&#39;) }}"/>
 @endif
Copier après la connexion

La connexion (logique de connexion) omet la logique de détermination du mot de passe du compte utilisateur et de stockage des cookies et des sessions. Enfin, le front-end obtient l'url, location.href = 'url', et accède à l'adresse URL d'origine.

$reurl = $request->get('reurl');

$url = empty($reurl) ? '/home/index' : $reurl;

return response($url);
Copier après la connexion

Remarque : cet article publie uniquement le code pertinent pour mettre en œuvre la reconnexion. Veuillez modifier le code réel en fonction de l'entreprise réelle.

Recommandations associées :

thinkphp a toujours un problème pour accéder à la page de pré-connexion après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal