Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie die SSO-Anmeldung in PHP

So implementieren Sie die SSO-Anmeldung in PHP

藏色散人
藏色散人Original
2021-12-30 10:06:192628Durchsuche

So implementieren Sie die SSO-Anmeldung in PHP: 1. Der Benutzer betritt die Anmeldeseite, um eine benutzerdefinierte SID zu generieren, und schreibt sie in Redis und Cookies. 2. Schreiben Sie im Konstruktor des Business BaseController eine Operation, um Redis zu aktualisieren. JS erstellt ein Sprungereignis, und dann überprüft der Server den Redis-Speicher des Benutzers basierend auf der SID.

So implementieren Sie die SSO-Anmeldung in PHP

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP Version 7.1, Dell G3-Computer.

Wie implementiert man die SSO-Anmeldung in PHP?

SSO-Single-Sign-On-Design und PHP-Implementierung

Es wird empfohlen, sich zunächst mit den Single-Sign-On-SSO-bezogenen Konzepten vertraut zu machen.

1. SSO: Single Sign-On, ein Login, alle zugehörigen Systeme können eingegeben werden, keine Notwendigkeit, sich wiederholt anzumelden

2 Implementierungsplan: Teilen Sie S[ID] + [Cross-domain SID] im [Top-Level-Domain-Name]-Cookie

3. Beenden Sie PHP-Sitzungen und speichern Sie Benutzerinformationen in Redis

4. Schreiben Sie jedes Mal, wenn der Benutzer legal arbeitet, im Konstruktor des Business BaseControllers einen Vorgang, um Redis zu aktualisieren Ablaufzeit des in Redis gespeicherten Benutzeranmeldestatus – Zweck zur Simulation des Sitzungsablaufs

5. Spezifische SSO-Implementierung von Single Sign-On: (PHPsessionId ist veraltet) – Die authentifizierte Benutzeranmelde-API wird auf dem SSO-Server platziert. und andere Anmeldeseiten rufen diese Schnittstelle auf.

1) SSO-Single-Sign-On-Authentifizierung: Der Benutzer betritt die Anmeldeseite, um eine benutzerdefinierte SID zu generieren, schreibt sie in Redis und Cookies, übermittelt das Kontokennwort und passt die SSO-Authentifizierungs-API so an, dass SSO den Benutzer binden muss die SID im Cookie (LoginAction/ssologin /321-Zeile: innerhalb von api::get)

Der lokale Server generiert Token (beides sind benutzerdefinierte Felder und Regeln) und speichert sie in Redis. Die Gültigkeitsdauer wird mit 30 Minuten empfohlen .

2) Schreiben Sie im Konstruktor des Business-BaseControllers eine Operation zum Aktualisieren von Redis. Wenn ein Geschäft vorliegt, werden die entsprechende SID und die Token-Gültigkeitsdauer aktualisiert (d. h., wenn 30 Minuten lang keine Operation erfolgt). läuft ab), – der Zweck besteht darin, den Sitzungsablauf zu simulieren

3) Die im Cookie-Domänennamen gespeicherte SID muss ein Top-Level-Domänenname wie [example.com] sein, die Gültigkeitsdauer des Cookies wird empfohlen Monat;

4) Der Benutzer klickt direkt auf andere Subdomains von der gerade angemeldeten Domainnamenseite aus, der a-Link muss nicht die Klartext-SID oder das Token mitbringen, da das Cookie diese selbst mitbringt Auf der SID geht der Server zur SSO-Authentifizierungsschnittstelle, um anhand der SID im Cookie zu prüfen, ob die domänenübergreifende Anmeldung erfolgt in einen Domänennamen ein, der nicht [.example.com] ist, wie zum Beispiel: erji.mogo.com, aber ich verwende dasselbe SSO-Authentifizierungssystem. Was soll ich tun?

Sie befinden sich immer noch auf der Domainnamenseite, auf der Sie sich gerade angemeldet haben. JS erstellt ein Sprungereignis. Die Sprung-URL?&SID=xxx reicht aus. Sie können jQuery.cookie.js verwenden, um die SID aus dem Cookie abzurufen Der Server überprüft auch die SID anhand der SID. Ob die Redis-Daten des Benutzers abgelaufen sind.

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die SSO-Anmeldung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn