首页 新闻 搜索 专区 学院

跨域访问问题?

0
悬赏园豆:5 [待解决问题]

我们这里有几个网站:其中一个是主网,还有其他的是子网站,主网站上记录了用户的信息(用户

名,密码),以前是主网站和子网站的用户各管各自的,登陆也是分开的,

现在要改成统一用主网站的用户登陆后,子网就不用二次登陆了,

比如:在查看子网站的文件通知时需要登陆,登陆成功后想看主网站的公告信息时就不用再次登陆

了,然后再返回子网站时候也不用登陆了。

这用到了跨域访问的了,

应该如何做呢,还请大师们指教,谢谢

myhmsdn的主页 myhmsdn | 初学一级 | 园豆:8
提问于:2013-12-20 10:57
< >
分享
所有回答(4)
0

用 cookie,登录成功后,顶多也就是多写几个 cookie ,cookie 的 domain 为需要使用此 cookie 的网站的域名。

Launcher | 园豆:45045 (高人七级) | 2013-12-20 11:02
2
魔多 | 园豆:1011 (小虾三级) | 2013-12-20 11:04
0

确实是单点登录,我们公司也有这样的需求,我了解到的就是单点登录,不过分成两种:一种就是真实的单点登录,就是有一个单点登录服务器,不管在哪个网站登录,都是去那个服务器登记的。这样查询的时候就可以查询了。不过可能没有这个服务器,那就搞个伪单点登录,具体就是传递几个参数过来,好像是登录的用户名(可能是用户ID,避免重名问题),包含用户密码和时间戳的经过加密的字符串,以及那个时间戳。然后另一边收到参数后,从数据库中查到该用户的密码,再加上这个收到的时间戳利用相同的加密规则得到加密后的字符串,然后一匹配就知道是不是已经登录了。

有几点需要注意,第一就是加密规则,你可以用MD5来加密,但是具体到待加密的字符串是怎么组合的,就自己定了,一般包括密码,时间戳,还有一个双方都商量好的密钥,其实就是一个任意的字符串。这些连接起来后md5加密。那个时间戳其实也有用处,好像是判断该时间戳和当前时间的差值需要在一定的范围内,才能接受该请求,否则这个请求是非法的。最后一点就是两个系统必须有相同的组织机构,也就是同一个用户名有相同的密码。。。

申明一下,我其实也不懂啊,就是组长跟我解释过一次。自己也没有真正的实现过,所以你懂的,应该还是有难点是我不知道的,或者以上部分也有不正确的部分。

ThreeTree | 园豆:1490 (小虾三级) | 2013-12-20 12:47
0

有2个办法,1是你们的域名都是二级域名,1级域名都一样话.直接修改<httpCookies domain=".一级域名"/>就能实现cookie在不同二级域名下共享,

如果一级域名也是不同的话会麻烦一些,基本思路做到最后就是oauth,不过oauth服务器是自己的

吴瑞祥 | 园豆:29287 (高人七级) | 2013-12-31 10:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册