1

我在 .NET Core 站点中使用 Identity Server 4,并使用它来处理带有 PCKE 的 Angular 应用程序的 OAUTH(使用 angular-oauth-oidc 库)。正常的登录过程工作正常,但是当网站尝试执行静默刷新时,它会向 http:// identityServerURL /connect/token 发送 HTTP POST,其中包含标题:

  • grant_type : refresh_token
  • client_id: xxxxxxxxxxxxxxxxxxxxxxxxxxx
  • 范围: openid 配置文件offline_access
  • 刷新令牌:
  • client_secret: xxxxxxxxxxxxxxxxxxxxx

从 IdentityServer 接收回 Http 400 代码,并且从日志中显示不允许向该端点进行 HTTP POST。

有没有人对此有任何想法和/或如何让刷新令牌工作?

提前致谢

4

1 回答 1

0

您遇到此问题的最可能原因(我们不得不稍微猜测一下,因为我们没有针对您的情况的可重现场景......)是Angular 库中存在一个错误,阻止触发基于 iframe 的静默刷新如果您明确调用silentRefresh()该服务。

setupAutomaticSilentRefresh()方法不会遇到这个问题,因为安排的刷新是使用refresh_tokens.

当前没有好的解决方法。这是我处理它的方法,至少可以防止您描述的错误。

于 2020-03-08T17:08:05.550 回答