oidc-client-js 回调后无响应状态

Posted

技术标签:

【中文标题】oidc-client-js 回调后无响应状态【英文标题】:No state in response after callback in oidc-client-js 【发布时间】:2018-08-19 13:59:33 【问题描述】:

我认为这是与 angular 5.2.8 & 6 相关的错误。 使用 Angular 5.2.7 可以正常工作。 我创建了一个ng5 branch 并将角度更新到最新的 5.2.8 和错误 com! 任何人都可以使用 oidc-client-js 将我引导到 Angular 5.2.8 及更高版本的示例?

【问题讨论】:

可能显示一些代码或提供更多上下文 @David 查看github.com/client-sdk-samples/sample-angular-OidcClient/tree/… 我想知道这些是否相似 - github.com/damienbod/angular-auth-oidc-client/issues/195 你设法解决这个问题了吗?遇到同样的问题。 @21seconds 我的回答对我来说很好,如果它也适合你,请将其标记为接受。 【参考方案1】:

它是由 window.location.hash 中状态的 URI 编码引起的。 对我来说,这解决了这个问题:

if (window.location.hash) 
window.location.hash = decodeURIComponent(window.location.hash);
// authorizedCallback returns wrong result when hash is URI encoded
this.oidcSecurityService.authorizedCallback();
 else 
this.oidcSecurityService.authorize();

【讨论】:

谢谢,window.location.hash = decodeURIComponent(window.location.hash); 这是我需要的线路。【参考方案2】:

如果您像我一样在做一些自定义的事情,而您的问题与哈希位置无关,请忽略它:

  completeAuthentication(): Promise<void> 
    return this.manager.signinRedirectCallback().then(user => 
      this.user = user;
    ).catch((err) => );
  

【讨论】:

为此+1,这正是我最初所做的,这证实了这一点。我将 React 与 React-Router 一起使用,由于某种原因,oidc-client 没有读取状态。

以上是关于oidc-client-js 回调后无响应状态的主要内容,如果未能解决你的问题,请参考以下文章

OidcClient.readSigninResponseState:在存储中找不到匹配的状态 - oidc-client-js (Angular)

startActivityForResult调用后立即响应了OnActivityResult()方法,导致setResult()后无响应

关闭 NSWindow 后无响应的 UI 元素

cocos2d第二次打开后无响应的场景

ubuntu 不能正常打开包括.doc的文档 打开后无响应

带有错误回调函数的 Ajax 响应