Angular 如何在Identity Server身份验证oidc客户端后关闭SignInPup()窗口
我有一个Angular应用程序,我需要通过Identity Server 4对用户进行身份验证。我正在UserManager上使用SignInPup()方法。这是设计好的。当我启动登录时,它会打开弹出窗口和登录表单 登录成功,但它没有关闭弹出窗口,也没有将登录声明信息传递到“opener”窗口,而是在弹出窗口中加载post_Login_redirect_uri 我需要它关闭这个窗口,然后数据将可用于启动SigningPup的应用程序,而不是在弹出窗口中 而且,如果我手动关闭该窗口,数据仍然不会传回主(弹出窗口的发起人)窗口。而是捕捉错误 我一直在研究,发现了一些关于如何做到这一点的帖子,但没有任何描述。我不认为编辑Identity Server登录代码来处理关闭弹出窗口是“正确”的方法 有人能帮忙吗Angular 如何在Identity Server身份验证oidc客户端后关闭SignInPup()窗口,angular,identityserver4,openid-connect,Angular,Identityserver4,Openid Connect,我有一个Angular应用程序,我需要通过Identity Server 4对用户进行身份验证。我正在UserManager上使用SignInPup()方法。这是设计好的。当我启动登录时,它会打开弹出窗口和登录表单 登录成功,但它没有关闭弹出窗口,也没有将登录声明信息传递到“opener”窗口,而是在弹出窗口中加载post_Login_redirect_uri 我需要它关闭这个窗口,然后数据将可用于启动SigningPup的应用程序,而不是在弹出窗口中 而且,如果我手动关闭该窗口,数据仍然不会传
//THis launches popup and authentication is successful.
startSigninPopup(){
this.mgr.signinPopup().then((user) =>{
console.log(user);
return user;
}).catch((error) => {
// if manually closing the popup, I end up in catch with error.
console.log(error)
})
}这可能与使用弹出式重定向uri而不是登录后重定向uri一样简单。请参见我有同样的问题,并在oidc客户端的github上的示例代码中找到了一条线索 在本示例中,SignInPup()重定向到一个只调用
这将关闭弹出窗口并成功解析来自父页面的承诺。您能提供一个示例吗?