PHP-discuz2.5如何实现单点登录

WP主题Bug提交 WP主题Bug提交 主题:1067 回复:2226

PHP-discuz2.5如何实现单点登录

泛泛之交 发布于 2017-05-16 字数 195 浏览 974 回复 2

我们整个门户网站是单点登录的,包括博客、微博及CMS,现在想搭建DX2.5论坛,实现论坛的登录及注册走主站的登录注册,通过主站生成的cookie如何如何修改DX系统框架实现自动登录,大家有这方面的经验吗,

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

浮生未歇 2017-06-18 2 楼

一般是通过解析主站生成的cookie获取用户信息,实现登录。
一,在论坛中将登录的注册和登录地址改为主站的。
二,从主站首次登录后会产生一个cookie,论坛解析cookie后将uid和其它用户信息一并存入数据库,这就是初始化用户信息的过程(DX初始化用户信息在sourceclassdiscuzdiscuz_application.php里面)。理论上要保证主站的uid和论坛的一致,就可以实现二者的接入了。除了uid,还要解决用户名的问题,单点登录的论坛有自己的用户名,此时可以设置为从主站中取出的用户名,也可以写一个添加昵称的js,通过添加昵称的方式获得用户名。
三,此后从论坛登录时,都是跳转到主站登录。然后向论坛返回一个带着cookie的请求(点下论坛就有了,或者设个跳转也可以),论坛解析主站传来的cookie,获得uid,此后核对uid实现登录的过程就和一般登录过程一样了。

泛泛之交 2017-05-25 1 楼

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