1. L'utilisateur se connecte à discuz et vérifie les données publiées via la fonction uc_user_login dans le fichier logging.php, c'est-à-dire en vérifiant le nom d'utilisateur et le mot de passe.
2. Si la vérification est réussie, la fonction uc_user_synlogin située dans le fichier client.php sous uc_client sera appelée. Dans cette fonction, uc_api_post('user', 'synlogin', array('uid'=. >$uid)).
3. Ensuite, cette fonction transmet les données à index.php de Ucenter. Index.php accepte les données transmises et obtient la valeur du modèle en tant qu'utilisateur et de l'action en tant que synlogin.
4. Ensuite, index.php d'Ucenter appelle la méthode onsynlogin dans la classe user.php dans le répertoire de contrôle et utilise javascript pour notifier les applications de la liste d'applications uc qui permettent la connexion synchrone via la boucle foreach pour se connecter. de manière synchrone ; c'est-à-dire que certaines données sont transmises à uc.php sous l'API dans chaque répertoire d'application via la méthode get.
5. uc.php reçoit la notification et traite les données obtenues, et crypte les données via la fonction _authcode dans la fonction synlogin (située dans uc.php) (la valeur par défaut utilise UC_KEY comme clé), et utilise la fonction _setcookie Définir les cookies.
6. Chaque application utilise la clé correspondante pour décoder le cookie défini ci-dessus et obtenir l'identifiant de l'utilisateur et d'autres données ; utilisez cette valeur pour déterminer si l'utilisateur s'est connecté via d'autres applications, afin que l'utilisateur puisse se connecter. automatiquement.
Logging.php dans l'application ------>client.php dans uc_client------>Ucenter------>api/ dans d'autres applications uc.php.
En fait, le principe d'Ucenter pour réaliser une connexion synchrone est le cookie. Une fois qu'une application s'est connectée avec succès, elle transfère les données à Ucenter et permet à Ucenter de demander à d'autres applications de définir également des cookies, afin que les utilisateurs puissent utiliser les cookies. qui ont été définis lors de l'accès à d'autres applications. Le cookie permet une connexion automatique.
Les étapes générales consistent d'abord à installer ucenter puis à copier le dossier uc_client dans votre propre projet, puis à configurer plusieurs fichiers
client.php est équivalent à une bibliothèque de fonctions
uc.php est équivalent au fichier de rappel
config.php est le fichier de configuration
Lorsque vous avez deux applications configurées pour synchroniser la connexion, lorsque vous vous connectez à une application et exécutez
include './config.inc.php'; include './uc_client/client.php'; $usernames="kyee"; $passwords="123456"; list($uid, $username, $password, $email) = uc_user_login($usernames, $passwords); if($uid > 0) {
setcookie("username",$username,time()+intval(24*3600)); echo uc_user_synlogin($uid); echo '登录成功'; } elseif($uid == -1) { echo '用户不存在,或者被删除'; } elseif($uid == -2) { echo '密码错误'; } else { echo '未定义'; }
uc_user_synlogin() Cette fonction représente la connexion synchrone à toutes les autres fonctions qui activent la connexion synchrone. uc lui-même parcourra toutes les applications qui activent la connexion synchrone en arrière-plan, puis l'affichera en arrière-plan. page
<script type="text/javascript" src="http://rayibeauty.ck101.com/api/uc.php?time=1408327309&code=bc6bFLa6WH343nin2GAn%2F82Y9cnCennPk1gcLGYHdQF4wsXsOSdTyqBb2Nuoxe0UJqzWMWncdx%2FfQ1GK6FS%2BqJqi2AxVG2Oq1pD9c1wZy%2BgjXs7qo4mm2sxFVHwW7JnjKGPDkVdDqtYeybkSISz7yrdb0ZFuXH2yr3Cq" reload="1"></script> <script type="text/javascript" src="http://kibeauty.ibeauty.tw/api/uc.php?time=1408327309&code=206flCqeb%2Faft%2FDFPno9Bvqsb1b0o6XTZdIByOoD7EC11vMrjzC7PaKLo0LF3tGiHwlwZkwdW5VDHq866MGulsco5nekfkL341VWp7BPabnZPNtgG7m4jZpfdx6nVP0LTJLYI%2BkebI7uLm58atk8Ex4sKBj%2FfDkjH%2F8z" reload="1"></script>
Un code JS comme celui-ci est envoyé à chaque application qui permet la connexion synchrone, puis le fichier de rappel uc.php de chaque application qui permet la connexion synchrone sera déchiffré après l'avoir reçu. Vous pouvez écrire le code vous-même. Le code de ce fichier de rappel uc.php n'a pas besoin d'être écrit dans leur format. Vous pouvez également écrire votre propre code.
En fait, le principe de l'UC est très simple. Une fois qu'une application s'est connectée, elle interroge ensuite le fichier de rappel envoyé à l'application connectée de manière synchrone en arrière-plan. Une fois que le fichier de rappel a reçu l'ID utilisateur, il génère un cookie ou une session puis entre en mode de connexion.
Pour une analyse plus simple des principes de communication de connexion synchrone des membres d'ucenter et des articles connexes, veuillez prêter attention au site Web PHP chinois !