如何实现单点登录

时间:2024-08-20 19:27:19编辑:流行君

如何利用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等数据;通过这个值来判断用户是否经过其它应用登录过,从而让用户可以自动登陆。


单点登录如何实现?

1、获取用户信息等资源,实现单点登录。用户已经登录企业门户的前提下,单点登录到门户中的应用。门户与应用的域名没有关系。2、单点登录通俗点讲就是只需要登录一次就可以访问所有相互信任的应用系统。应该没有没有比这个更通俗的了。3、单点登录的本质就是在多个应用系统中共享登录状态。4、可以看出,要实现SSO,需要以下主要的功能:所有应用系统共享一个身份认证系统;所有应用系统能够识别和提取ticket信息;应用系统能够识别已经登录过的用户,能自动判断当前用户是否登录过,从而完成单点登录的功能。5、最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。通过JSONP实现对于跨域问题,可以使用JSONP实现。

上一篇:一见钟情 李炜

下一篇:高科技亚文化取名机