JSONP或window.postMessage& MessageChannel

时间:2014-05-12 12:16:02

标签: javascript php jquery ajax single-sign-on

好的,所以在构建x域逻辑时,我们已经达到了未知数。

使用JSONP或window.postMessage& MessageChannel (MessageChannel)用于windows bastard child IE10。

逻辑是(显然是相当标准的)。一个主域,另外两个域(site2和site3)。 登录site1

  1. 用户将表​​单发布到主域。

  2. 主域名,将用户登录到主站并重定向回site1.com/sso?token=uhytchvgjb

  3. site1 / sso解密令牌并将用户登录到site1

  4. 这种逻辑工作正常并且有意义。现在输入“上下文登录”。即,js灯箱弹出,登录,将页面转换为登录状态。

    以上3个步骤可以在iframe中完成,但是我需要部署postMessage的使用来提醒父窗口成功登录。然而,经过研究,postMessage并不友好(震惊)。所以我必须使用MessageChannel,但那时对于一个恼人的浏览器似乎是额外的工作。

    是否可以使用jquery ajax和jsonp?即登录到site1

    1. 用户通过ajax数据发布到主域

    2. 主域验证当前用户的详细信息和日志,并在响应中将令牌返回给客户端。

    3. 收到回复的客户将令牌传递回site.com sso检查并将成功返回给客户

    4. 客户端然后将页面转换为记录状态或重定向到重新登录页面。

    5. 以上似乎是明智和可行的。问题是,如果使用JSONP方法,客户端是否会登录到主域?

1 个答案:

答案 0 :(得分:2)

当JSONP请求发送到辅助网站时,响应可能包含setcookie标头。 可以通过这种方式为辅助网站设置会话cookie。因此,也可以为它启动会话。并且可以设置登录标志。