


Exemple d'analyse de la fonction d'accès au système d'authentification unique SSO implémentée en PHP
Cet article présente principalement la fonction d'accès au système d'authentification unique SSO implémentée par PHP. Il analyse brièvement les principes de l'accès au système d'authentification unique SSO et les techniques de mise en œuvre liées à PHP. Les amis dans le besoin peuvent s'y référer
Le nom anglais complet de SSO est Single Sign On, single sign-on. Le SSO existe dans plusieurs systèmes d'applications. Les utilisateurs n'ont besoin de se connecter qu'une seule fois pour accéder à tous les systèmes d'applications mutuellement fiables. Il inclut des mécanismes permettant de mapper cette connexion principale aux connexions du même utilisateur dans d'autres applications. C’est l’une des solutions d’intégration commerciale les plus populaires à l’heure actuelle.
Permettez-moi de parler brièvement du principe d'accès au système d'authentification unique SSO. Le principe est que le système lui-même dispose d'une fonction d'authentification complète de l'utilisateur, c'est-à-dire d'une fonction de connexion utilisateur de base, puis. c'est très pratique.
L'interface de demande de connexion SSO est généralement l'interface plus une adresse de rappel. L'accès à cette adresse passera à l'adresse de rappel et apportera un paramètre de ticket. L'utilisation de ce paramètre de ticket, puis la demande à l'interface, peuvent obtenir les informations de l'utilisateur. Si l'utilisateur existe, l'utilisateur sera connecté automatiquement. Si l'utilisateur n'existe pas, l'utilisateur sera ajouté et connecté.
Par exemple, ce modèle SSO implémente deux méthodes, l'une consiste à obtenir l'URL de l'interface et l'autre consiste à obtenir des informations utilisateur basées sur le ticket :
interface SSOLogin { /** * 获取登录用户信息 * @param $ticket * @return mixed */ public function getInfoFromTicket($ticket); /** * 单点登录授权地址 * @return mixed */ public function getAuthUrl(); }
Regardons les principales méthodes du contrôleur. Par exemple, l'adresse de rappel consiste à accéder au contrôleur http://www.example.com/sso/check?ticket=xxxx
./** * 检测是否单点登录 * @return bool|string */ public function actionCheck() { $ticket = Yii::$app->getRequest()->get('ticket'); if (!$ticket) { return $this->renderAuthError('请先授权', sprintf('<a href="%s">点击登录单点登录系统</a>', SSOlogin::getInstance()->getAuthUrl())); } $userInfo = SSOlogin::getInstance()->getInfoFromTicket($ticket); if (empty($userInfo['username'])) { return $this->renderAuthError('请先授权', sprintf('<a href="%s">点击登录单点登录系统</a>', SSOlogin::getInstance()->getAuthUrl())); } $username = $this->getUserName($userInfo['username']); $user = User::find()->canLogin()->username($username)->one(); if (!$user) { $newUser = []; $newUser['username'] = $userInfo['username']; $newUser['email'] = $this->getUserName($userInfo['username']); $newUser['role'] = User::ROLE_DEV; $newUser['is_email_verified'] = 1; $newUser['realname'] = $userInfo['truename']; $user = $this->addUser($newUser); } $isLogin = Yii::$app->user->login($user, 3600 * 24 * 30); if ($isLogin) { $this->redirect('/task/index'); } return true; }
Vous pouvez probablement le comprendre en regardant la logique de ce contrôleur. La fonction de l'interface SSO est d'obtenir des informations utilisateur. Comparez ces informations utilisateur avec la table des utilisateurs du système. Si un utilisateur existe, connectez-vous. S'il n'y a pas d'utilisateur, créez un utilisateur et connectez-vous.
Il s'agit d'un système interne à point unique, intégré au backend. D'autres SSO peuvent être différents de celui-ci, mais les principes et processus de base sont similaires.
Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
phpMéthode de _imagick pour obtenir des effets rétro
JS, phpExplication détaillée de l'utilisation de la fonction de recherche par mot-clé
php+ temps de traitement mysql
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!

Outils d'IA chauds

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.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

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)

Sujets chauds

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.
