整个门户网站是单点登录的,包括博客、微博及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本身不跨域,但可以利用它实现跨域的单点登录。 |