Discuz教程网

[二次开发] Discuz X2.5实现多程序单点登录思路分析

[复制链接]
authicon dly 发表于 2012-10-6 16:39:47 | 显示全部楼层 |阅读模式
整个门户网站是单点登录的,包括博客、微博及CMS,现在想搭建DX2.5论坛,实现论坛的登录及注册走主站的登录注册,通过主站生成的cookie如何如何修改DX系统框架实现自动登录:
一般是通过解析主站生成的cookie获取用户信息,实现登录。
一,在论坛中将登录的注册和登录地址改为主站的。
二,从主站首次登录后会产生一个cookie,论坛解析cookie后将uid和其它用户信息一并存入数据库,这就是初始化用户信息的过程(DX初始化用户信息在source\class\discuz\discuz_application.php里面)。理论上要保证主站的uid和论坛的一致,就可以实现二者的接入了。除了uid,还要解决用户名的问题,单点登录的论坛有自己的用户名,此时可以设置为从主站中取出的用户名,也可以写一个添加昵称的js,通过添加昵称的方式获得用户名。
三,此后从论坛登录时,都是跳转到主站登录。然后向论坛返回一个带着cookie的请求(点下论坛就有了,或者设个跳转也可以),论坛解析主站传来的cookie,获得uid,此后核对uid实现登录的过程就和一般登录过程一样了。

不过需要注意如下几点:如果是基于两个域名之间传递sessionid的方法可能在windows中成立,在 unix&linux中可能会出现问题;可以基于数据库实现;在安全性方面可能会作更多的考虑。另外,关于跨域问题,虽然cookies本身不跨域,但可以利用它实现跨域的单点登录。



上一篇:Discuz X2.0发主题或帖子的小程序
下一篇:ThinkPHP获取Discuz的信息之后就不能实例化Thinkphp本身的模型的原因分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 01:28

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表