Javascript 如何在当前web应用程序的iframe中使用有效令牌?

Javascript 如何在当前web应用程序的iframe中使用有效令牌?,javascript,openid-connect,Javascript,Openid Connect,我有两个web应用程序应用程序A和应用程序B,希望将其中一个应用程序A用作另一个B中的iframe。我在当前web应用程序B中有一个令牌,表明它在iframe A中也有效。iframe web app A使用OIDC js身份验证和angularjs,现在我如何将令牌从B发送到A并使用它 在我的A应用程序中,我有以下内容: var config = { authority: '...my auth server ...', client_id: '...' ... }

我有两个web应用程序应用程序A和应用程序B,希望将其中一个应用程序A用作另一个B中的iframe。我在当前web应用程序B中有一个令牌,表明它在iframe A中也有效。iframe web app A使用OIDC js身份验证和angularjs,现在我如何将令牌从B发送到A并使用它

在我的A应用程序中,我有以下内容:

var config = {
    authority: '...my auth server ...',
    client_id: '...'
    ...
}

mgr = new OidcTokenManager(config);

if (window.location.hash && window.location.hash.indexOf('id_token') > -1) {
    mgr.processTokenCallbackAsync().then(function () {
        //checkSessionState();
    }, function (error) {
    });
}

这很好,但是当我使用as-iframe时,mgr没有正确启动,并且一些属性(如as-access\u令牌)没有定义

使用Javascript函数从A=>B=>A发布数据

来自Parrent应用程序javascript代码

 document
      .querySelector(`iframe`)
      .contentWindow.postMessage({ token: '112121' }, "*");
接收机或iframe应用程序代码

window.addEventListener('message', receiveToken,*);

const receiveToken = message => {
    if (message.data && message.data.token){
        console.log(message.data.token)
   }

使用Javascript函数从A=>B=>A发布数据

来自Parrent应用程序javascript代码

 document
      .querySelector(`iframe`)
      .contentWindow.postMessage({ token: '112121' }, "*");
接收机或iframe应用程序代码

window.addEventListener('message', receiveToken,*);

const receiveToken = message => {
    if (message.data && message.data.token){
        console.log(message.data.token)
   }

如果B有令牌,您可以通过query param将其发送到iframe,或者将iframe URL设置为包含令牌,或者使用postMessage。谢谢@MoshFeu。是的,我试过了,但是我犯了上面提到的错误!。mgr未启动。如果B具有令牌,则可以通过查询参数将其发送到iframe。将iframe URL设置为同时包含令牌或使用postMessage。谢谢@MoshFeu。是的,我试过了,但是我犯了上面提到的错误!。经理不在。