好的,所以在构建x域逻辑时,我们已经达到了未知数。
使用JSONP或window.postMessage
& MessageChannel (MessageChannel)
用于windows bastard child IE10。
逻辑是(显然是相当标准的)。一个主域,另外两个域(site2和site3)。 登录site1
用户将表单发布到主域。
主域名,将用户登录到主站并重定向回site1.com/sso?token=uhytchvgjb
site1 / sso解密令牌并将用户登录到site1
这种逻辑工作正常并且有意义。现在输入“上下文登录”。即,js灯箱弹出,登录,将页面转换为登录状态。
以上3个步骤可以在iframe中完成,但是我需要部署postMessage
的使用来提醒父窗口成功登录。然而,经过研究,postMessage并不友好(震惊)。所以我必须使用MessageChannel,但那时对于一个恼人的浏览器似乎是额外的工作。
是否可以使用jquery ajax和jsonp?即登录到site1
用户通过ajax数据发布到主域
主域验证当前用户的详细信息和日志,并在响应中将令牌返回给客户端。
收到回复的客户将令牌传递回site.com sso检查并将成功返回给客户
客户端然后将页面转换为记录状态或重定向到重新登录页面。
以上似乎是明智和可行的。问题是,如果使用JSONP方法,客户端是否会登录到主域?
答案 0 :(得分:2)
是
当JSONP请求发送到辅助网站时,响应可能包含setcookie标头。 可以通过这种方式为辅助网站设置会话cookie。因此,也可以为它启动会话。并且可以设置登录标志。