进一步优化Yii2跨域的SSO登陆 丽珠门户sso sso.dinghuo123 sso
data-id="1190000004999380" data-licence="">
序言
本文主要是对“关于Yii2如何实现跨域的SSO登陆的解析”的改进,因为在那篇文章中我已经写出了SSO登陆的基本实现过程,现在是进一步优化。主要优化的部分有两点:一、在www.XXX.com登陆状态的页面地址栏上输入login.XXX.com的时候回到登陆页面,但并不退出登陆,再输入www.XXX.com的时候,让它又回到了www.XXX.com页面并保持登陆的状态;二、修改session的过期时间,设置到极大值。
需求分析
1、输入login.XXX.com只是让它回到登陆的界面,但并不会退出登陆,session和cookie的值还是保存着的。
2、实现永久登陆状态。只要不点击退出登陆,就一直保持着登陆状态。
代码分析
1、对login模块SiteController.php的Login方法修改
1.1、修改前代码
<code>public function actionLogin() { $URL=Yii::$app->request->get('redirectURL'); $model = new LoginForm(); if (!\Yii::$app->user->isGuest) { $this->actionLogout();//退出登陆 return $this->redirect('http://'.DOMAIN_LOGIN.'?redirectURL=http://'.DOMAIN_HOME); } if ($model->load(Yii::$app->request->post()) && $model->login()) { if(empty($URL)){ return $this->redirect('http://'.DOMAIN_HOME,301); }else{ return $this->redirect($URL,301); } // return $this->goBack(); } else { return $this->renderPartial('login', [ 'model' => $model, ]); } }</code>
1.2、修改后代码
<code> public function actionLogin() { $URL=Yii::$app->request->get('redirectURL'); $URL1='http://'.DOMAIN_CRM; $URL2='http://'.DOMAIN_HR; $URL3='http://'.DOMAIN_ADMIN; $URL4='http://'.DOMAIN_OA; $redirectURL1='http://'.DOMAIN_LOGIN.'?redirectURL=http://'.DOMAIN_CRM; $redirectURL2='http://'.DOMAIN_LOGIN.'?redirectURL=http://'.DOMAIN_HR; $redirectURL3='http://'.DOMAIN_LOGIN.'?redirectURL=http://'.DOMAIN_ADMIN; $redirectURL4='http://'.DOMAIN_LOGIN.'?redirectURL=http://'.DOMAIN_OA; $model = new LoginForm(); //验证是否已登录,非空为登录 if (!\Yii::$app->user->isGuest) { if(!empty($URL)){ $this->actionLogout();//退出登陆 if($URL==$URL2){ return $this->redirect($redirectURL2); }elseif($URL==$URL3){ return $this->redirect($redirectURL3); } if($URL==$URL4){ return $this->redirect($redirectURL4); } return $this->redirect($redirectURL1); }else{ //redirectURL不存在时,提交表单判断 if(DOMAIN_LOGIN){ if ($model->load(Yii::$app->request->post()) && $model->login()) { if(empty($URL)){ return $this->redirect($URL1,301); }else{ if($URL==$URL2){ return $this->redirect($URL2,301); }elseif($URL==$URL3){ return $this->redirect($URL3,301); } if($URL==$URL4){ return $this->redirect($URL4,301); } return $this->redirect($URL1,301); } } else { return $this->renderPartial('login', [ 'model' => $model, ]); } }else{ return $this->goHome(); //与之前的代码主要的区别在这里,登陆就让它回到登陆页面。 } } } else { //redirectURL存在时,提交表单判断 if ($model->load(Yii::$app->request->post()) && $model->login()) { if(empty($URL)){ return $this->redirect($URL1,301); }else{ if($URL==$URL2){ return $this->redirect($URL2,301); }elseif($URL==$URL3){ return $this->redirect($URL3,301); } if($URL==$URL4){ return $this->redirect($URL4,301); } return $this->redirect($URL1,301); } } else { return $this->renderPartial('login', [ 'model' => $model, ]); } } }</code>
2、修改session的过期时间,设置到极大值。
commonconfigmain.php
2.1、修改前代码
<code>'session' => [ 'cookieParams' => ['domain' => '.' . DOMAIN, 'lifetime' => 0], 'timeout' => 3600, ],</code>
2.2、修改后代码
<code>'session' => [ 'cookieParams' => ['domain' => '.' . DOMAIN, 'lifetime' => 0], 'timeout' => 7200, ],</code>
常见问题
1、虽然session的过期时间已经设置了极大值,登陆成功cookie也有值了,但是登陆后大约过两个小时左右还是会退出登陆,为何会这样?Yii2如何实现真正的永久登陆,还请大牛们解答,后续要是我解决了也会继续更新,一同进步。
相关资料
Yii2 配置 跨域登录实例:http://www.kuitao8.com/20150507/3735.shtml
Yii2 如何利用redirect让页面自动跳转到外站?:https://segmentfault.com/q/1010000002549004
全文完,如有不足或者更好的方式方法,欢迎大家踊跃提出,我们一起相互交流学习。
以上就介绍了进一步优化Yii2跨域的SSO登陆,包括了sso,yii方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So erreichen Sie mit PHP ein effizientes und stabiles SSO-Single-Sign-On. Einführung: Mit der Popularität von Internetanwendungen sind Benutzer mit einer großen Anzahl von Registrierungs- und Anmeldeprozessen konfrontiert. Um das Benutzererlebnis zu verbessern und die Registrierungs- und Anmeldeintervalle der Benutzer zu verkürzen, haben viele Websites und Anwendungen damit begonnen, die Single-Sign-On-Technologie (Single Sign-On, kurz SSO) einzuführen. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP ein effizientes und stabiles SSO-Single-Sign-On implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. SSO-Single-Sign-On-Prinzip SSO-Single-Sign-On ist eine Lösung zur Identitätsauthentifizierung

Mit der kontinuierlichen Weiterentwicklung der Cloud-Computing-Technologie ist die Datensicherung zu etwas geworden, das jedes Unternehmen durchführen muss. In diesem Zusammenhang ist es besonders wichtig, ein hochverfügbares Cloud-Backup-System zu entwickeln. Das PHP-Framework Yii ist ein leistungsstarkes Framework, das Entwicklern dabei helfen kann, schnell leistungsstarke Webanwendungen zu erstellen. Im Folgenden wird vorgestellt, wie Sie mit dem Yii-Framework ein hochverfügbares Cloud-Backup-System entwickeln. Entwerfen des Datenbankmodells Im Yii-Framework ist das Datenbankmodell ein sehr wichtiger Teil. Denn das Datensicherungssystem erfordert viele Tabellen und Beziehungen

OAuth in PHP: Aufbau einer plattformübergreifenden SSO-Lösung Mit der rasanten Entwicklung des Internets ist es für Menschen zur Norm geworden, verschiedene Anwendungen auf mehreren Plattformen zu verwenden. Dies wirft die Frage auf: Wie implementiert man Single Sign-On (SSO) zwischen verschiedenen Plattformen? OAuth (Open Authorization) ist eine ausgezeichnete Wahl, um dieses Problem zu lösen. OAuth ist ein offener Standard, der es Benutzern ermöglicht, Anwendungen von Drittanbietern den Zugriff auf ihre Internetressourcen zu autorisieren, ohne ihre Anmeldeinformationen weiterzugeben. OAuth kann verwendet werden, um eine Multi-

Da die Nachfrage nach Webanwendungen weiter wächst, haben Entwickler bei der Auswahl von Entwicklungsframeworks immer mehr Möglichkeiten. Symfony und Yii2 sind zwei beliebte PHP-Frameworks. Sie verfügen beide über leistungsstarke Funktionen und Leistung. Welches Framework ist jedoch besser geeignet, wenn es darum geht, umfangreiche Webanwendungen zu entwickeln? Als nächstes führen wir eine vergleichende Analyse von Symphony und Yii2 durch, um Ihnen zu helfen, eine bessere Wahl zu treffen. Grundlegende Übersicht Symphony ist ein Open-Source-Webanwendungs-Framework, das in PHP geschrieben ist und darauf aufbaut

Das Yii-Framework ist ein Open-Source-PHP-Webanwendungsframework, das zahlreiche Tools und Komponenten zur Vereinfachung des Prozesses der Webanwendungsentwicklung bereitstellt, wobei die Datenabfrage eine der wichtigen Komponenten ist. Im Yii-Framework können wir eine SQL-ähnliche Syntax verwenden, um auf die Datenbank zuzugreifen und Daten effizient abzufragen und zu bearbeiten. Der Abfrage-Builder des Yii-Frameworks umfasst hauptsächlich die folgenden Typen: ActiveRecord-Abfrage, QueryBuilder-Abfrage, Befehlsabfrage und Original-SQL-Abfrage

Mit der Weiterentwicklung des Internets wird auch die Nachfrage nach der Entwicklung von Webanwendungen immer größer. Für Entwickler erfordert die Entwicklung von Anwendungen ein stabiles, effizientes und leistungsstarkes Framework, das die Entwicklungseffizienz verbessern kann. Yii ist ein führendes Hochleistungs-PHP-Framework, das umfangreiche Funktionen und gute Leistung bietet. Yii3 ist die nächste Generation des Yii-Frameworks, das die Leistung und Codequalität basierend auf Yii2 weiter optimiert. In diesem Artikel stellen wir vor, wie Sie das Yii3-Framework zum Entwickeln von PHP-Anwendungen verwenden.

Im aktuellen Informationszeitalter sind Big Data, künstliche Intelligenz, Cloud Computing und andere Technologien in den Fokus großer Unternehmen gerückt. Unter diesen Technologien hat die Grafikkarten-Rendering-Technologie als leistungsstarke Grafikverarbeitungstechnologie immer mehr Aufmerksamkeit erhalten. Die Grafikkarten-Rendering-Technologie wird häufig in der Spieleentwicklung, bei Film- und Fernsehspezialeffekten, im technischen Modellbau und in anderen Bereichen eingesetzt. Für Entwickler ist die Wahl eines Frameworks, das zu ihren Projekten passt, eine sehr wichtige Entscheidung. Unter den aktuellen Sprachen ist PHP eine sehr dynamische Sprache. Einige hervorragende PHP-Frameworks wie Yii2, Ph

Sicherheit und Schwachstellenprävention von PHPSSO Single Sign-On 1. Einführung Mit der Entwicklung des Internets haben immer mehr Websites Benutzerauthentifizierungsfunktionen implementiert. Allerdings müssen Benutzer jedes Mal, wenn sie sich auf verschiedenen Websites anmelden, ihre Kontonummer und ihr Passwort eingeben, was umständlich ist und leicht vergessen wird. Um dieses Problem zu lösen, wurde Single Sign-On (SSO) entwickelt. SSO ist eine Lösung zur Authentifizierung der Benutzeridentität auf mehreren Websites. Benutzer müssen sich nur einmal anmelden, um nahtlosen Zugriff auf andere Websites zu erhalten. 2. PH
