


Méthode d'implémentation PHP de l'authentification unique SSO (framework Laravel)
Dec 28, 2016 pm 04:12 PMLaravel est un framework de développement Web PHP simple et élégant (PHP Web Framework). Il peut vous libérer des codes désordonnés comme les nouilles?; il peut vous aider à créer une application réseau parfaite, et chaque ligne de code peut être concise et expressive.
Laissez-moi vous expliquer brièvement ma logique. Je ne sais pas si je comprends bien le SSO.
Supposons qu'il y ait trois sites a.baidu.com b.baidu.com c.baidu.com
a.baidu.com se connecte au compte en tant que utilisateur vérifié.
b et c agissent en tant que clients (sous-systèmes).
b et c sautent vers a lorsqu'ils doivent se connecter, et portent le paramètre source pour indiquer le lien vers lequel sauter après la connexion.
Un site est une méthode de connexion normale (vérification du mot de passe de l'utilisateur), et certains traitements seront effectués une fois la vérification réussie. Un ticket doit être généré, peu importe la manière dont vous le générez, du moment qu'il est sécurisé. Ensuite, stockez-le dans le cache. Si vous avez des questions ici, je les résumerai plus tard. Une fois la connexion réussie, accédez simplement à (url.
``` php private function getTicketUrl(\)source) { \(ticket = md5(time()+key); Cache::put(\)ticket, $user, 120); $url = $source . '?ticket=' . $ticket; return $url; }
Supposons que la station a saute à la station b avec un ticket (b.baidu.com?ticket=xxxxxxxxxxxxxxxx```)
Le site b effectue un filtre global, accepte le ticket puis demande à la station a de vérifier si le ticket est généré par a
Le site b filtre le code AppHttpMiddlewareCasAuthenticate, détermine ici s'il existe. un ticket et la demande est envoyée à la station a pour vérification. S'il est connecté, l'UID de l'utilisateur est obtenu et la logique est terminée, mais il y a quelques questions
1 je ne sais pas si cette implémentation. est correct. Je l'ai écrit sur la base du principe.public function handle($request, Closure $next) { $ticket = $request->input('ticket'); if ($ticket) { $result = json_decode('http://a.baidu.com' . '/auth/check-ticket?ticket=' . $ticket), true); if ($result['state'] == "SUCCESS") { $request->session()->flush(); Auth::loginUsingId($result['result']['uid']); return redirect(redirect()->getUrlGenerator()->current()); } } return $next($request);
2. Si la station b passe maintenant à la station c, car le site b est actif plus fréquemment et la session est toujours là, pendant le temps de cache. du site a a probablement expiré. à ce moment-là, il passe du site b au site c, et le site c passe au site a pour déterminer la connexion, et il s'avère qu'il a expiré. c'est un problème. Puisque notre module métier n'est pas pertinent et ne sautera pas à volonté, nous n'examinerons pas cette question pour le moment. Mais c'est effectivement un problème pour moi
Cet éditeur va vous le présenter. à la méthode d'implémentation PHP de l'authentification unique SSO (framework Laravel). J'espère que cela vous sera utile

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)
