JSONP or window.postMessage & MessageChannel

JSONP or window.postMessage & MessageChannel

本文关键字:amp MessageChannel postMessage or window JSONP      更新时间:2023-09-26

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

使用JSONP或window.postMessage &MessageChannel (MessageChannel) for windows私生子IE10.

逻辑是(显然相当std)。一个主域,两个其他域(site2和site3)。登录站点1

  1. 用户向主域发布表单。

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

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

这个逻辑工作得很好,很有意义。现在输入"上下文登录"。即,js灯箱弹出,登录,将页面转换为登录状态。

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

是否可以使用jquery ajax和jsonp?例如,登录site1

  1. 用户帖子通过ajax数据到主域

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

  3. 客户端在收到响应时将令牌传递回site.com sso check并向客户端返回成功

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

以上似乎是合理可行的。问题是,如果使用了JSONP方法,客户机是否会登录到主域?

可以。

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