UCenter实现同步登陆原理

简介:

UCenter实现同步登陆原理

1、用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证。

2、如果验证成功,将调用位于uc_client下client.php文件中的函数uc_user_synlogin,在这个函数中调用 uc_api_post('user', 'synlogin', array('uid'=>$uid))。

3、然后这个函数后向Ucenter的index.php传递数据,index.php接受传递的数据,获得model为user,action为synlogin的值。

4、然后Ucenter的index.php调用control目录下的user.php类中的onsynlogin方法,通过foreach循环,以javascript的方式通知uc应用列表中开启同步登陆的应用进行同步登录;即通过get方式传递给各个应用目录中api下的uc.php一些数据。

5、uc.php接收通知并处理get过来的数据,并在函数synlogin(位于uc.php中)通过函数_authcode加密数据(默认以UC_KEY作为密钥),用函数_setcookie设置cookie。

6、各个应用用对应的密钥解码上面设置的cookie,得到用户id等数据;通过这个值来判断用户是否经过其它应用登录过,从而让用户可以自动登陆。

应用程序的logging.php ------>uc_client中的client.php------>Ucenter------>应用程序中api/uc.php

其实Ucenter实现同步登陆的原理就是cookie,一个应用登陆成功之后,向Ucenter传递数据,让Ucenter通知其他的应用也设置cookie,这样用户在访问其他应用的时候通过已经设置好的cookie实现自动登陆。了解了Ucenter的同步原理,再遇到无法同步登陆,或者开发一些与UCenter接口的时候就会容易很多。


      本文转自许琴 51CTO博客,原文链接http://blog.51cto.com/xuqin/1293551:,如需转载请自行联系原作者





相关文章
|
4月前
|
SQL PHP 数据库
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
|
9月前
|
存储 JavaScript 前端开发
使用 Flask 的g对象和 MySQL 实现用户登录和注销功能
使用 Flask 的g对象和 MySQL 实现用户登录和注销功能
|
10月前
|
关系型数据库 MySQL 数据库
当flask账号密码遇到哈希加密方法后,数据库密码无法显示出来怎么解决
当flask账号密码遇到哈希加密方法后,数据库密码无法显示出来怎么解决
60 0
|
12月前
|
存储 C# 数据库
Qt+QtWebApp开发笔记(四):http服务器使用Session和Cookie实现用户密码登录和注销功能
前面实现了基础的跳转,那么动态交互中登录是常用功能。本篇实现一个动态交互的简单登录和注销功能,在Qt中使用Session和Cookie技术。
|
PHP
laravel-admin 自定义登陆逻辑,补充原有账号密码登录
laravel-admin 自定义登陆逻辑,补充原有账号密码登录
266 0
|
JSON 中间件 API
Koa2+mysql 搭建用户信息注册和登录接口服务(上)
Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。
279 0
Koa2+mysql 搭建用户信息注册和登录接口服务(上)
|
SQL 中间件 关系型数据库
Koa2+mysql 搭建用户信息注册和登录接口服务(下)
Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。
400 0
Koa2+mysql 搭建用户信息注册和登录接口服务(下)
|
SQL 弹性计算 PHP
ecshop重置后台用户的密码方法
ecshop重置后台用户的密码方法
286 0
|
Web App开发 算法 数据安全/隐私保护
|
关系型数据库 MySQL 数据库

热门文章

最新文章