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登录功能(可以判断谁登录的呢)注册粗暴解决
php登录功能(可以判断谁登录的呢)注册粗暴解决
php登录功能(可以判断谁登录的呢)注册粗暴解决
|
Java 数据安全/隐私保护
登陆页面实现保存帐号密码功能
本文主要讲如何登陆页面实现保存帐号密码功能
452 0
登陆页面实现保存帐号密码功能
|
2月前
|
安全 数据安全/隐私保护
屏蔽修改wp-login.php登录入口确保WordPress网站后台安全
WordPress程序默认的后台地址wp-login.php,虽然我们的密码设置比较复杂,但是如果被软件一直扫后台入口,一来影响网站的速度增加服务器的负担,二来万一被扫到密码,那就处于不安全的境地。所以,我们最好将后台地址入口隐藏屏蔽起来,我们可以通过下面的命令实现隐蔽wp-login.php入口。
65 0
|
4月前
|
SQL PHP 数据库
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
PHP案例:每一个账号登陆后的操作是隔离的(使用token进行登录)
|
PHP
laravel-admin 自定义登陆逻辑,补充原有账号密码登录
laravel-admin 自定义登陆逻辑,补充原有账号密码登录
322 0
|
PHP
【laravel】在使用Auth认证时,登录后直接进入home,不登录会直接跳转到login
【laravel】在使用Auth认证时,登录后直接进入home,不登录会直接跳转到login
337 0
【laravel】在使用Auth认证时,登录后直接进入home,不登录会直接跳转到login
|
前端开发 PHP
如何实现网站用户登陆之后跳转到登陆之前的页面
主体思路就是在网站的公共头部文件里session中记录当前网页地址以及上一个页面的网页地址,然后就是登陆成功之后如果session中有上一个页面的网址就跳转到上一个页面去,如果session中没有上一个页面就跳转到会员中心去。
282 1
|
PHP
PHP如何实现一个账号只能一个用户登录方案
PHP如何实现一个账号只能一个用户登录方案
225 0
|
数据安全/隐私保护
Confluence 6 从 Crowd 或 JIRA 应用中切换回使用内部用户管理
如果你的 Confluence 站点当前使用的是 Crowd 或者 Jira 应用程序管理你的用的话,你可以按照下面的步骤切换使用回内部目录管理你的用户。
1080 0
|
Web App开发 搜索推荐 前端开发
CAS单点登录3--服务端登录页个性化
原理 cas的页面显示控制是集中在\WEB-INF\cas.properties中的cas.viewResolver.
935 0