Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSONP或window.postMessage&;消息通道_Javascript_Php_Jquery_Ajax_Single Sign On - Fatal编程技术网

Javascript JSONP或window.postMessage&;消息通道

Javascript JSONP或window.postMessage&;消息通道,javascript,php,jquery,ajax,single-sign-on,Javascript,Php,Jquery,Ajax,Single Sign On,好的,在构建x域sso逻辑时,我们得到了一个未知的结果 要使用JSONP或windows IE10的window.postMessage&MessageChannel(MessageChannel) 逻辑是(显然相当标准)。一个主域,两个其他域(site2和site3)。 登录到站点1 用户将表单发布到主域 主域,将用户登录到主域并重定向回site1.com/sso?token=uhytchvgjb site1/sso解密令牌并将用户登录到site1 这种逻辑运作良好,有道理。现在输入“上下文登

好的,在构建x域sso逻辑时,我们得到了一个未知的结果

要使用JSONP或windows IE10的
window.postMessage
&
MessageChannel(MessageChannel)

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

  • 用户将表单发布到主域

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

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

  • 这种逻辑运作良好,有道理。现在输入“上下文登录”。ie,js lightbox弹出窗口,登录,将页面转换为登录状态

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

    可以使用jquery ajax和jsonp吗?ie,登录site1

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

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

  • 客户端在收到响应时将令牌传递回site.com sso检查,并将成功返回给客户端

  • 然后,客户端将页面转换为已登录状态或重定向到rel logged in页面

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

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