我正在尝试使用angular-auth-oidc-client包更新我的Angular应用程序的身份验证策略。我使用的是一个较旧的版本,但希望更新到最新版本的包。我经历了所有的迁移步骤,一切都编译得很好,但在应用程序转到身份验证服务器并返回后,我发现了一个问题。
作为背景,我们的Angular应用程序在v9上,我们在自我托管的Identity Server4实例上进行身份验证。我们使用隐式流,但正在尝试使用PKCE转移到代码流。
当应用程序加载时,我们从一个文件中加载身份验证服务器所需的配置(以便在每个环境中可以不同),然后有一个“登录”按钮,用户单击该按钮即可转到身份验证服务器。我们转到auth服务器,然后回到Angular应用程序。我们返回的组件是/auth/callback,其中从angular-auth-oidc-client在OidcSecurityService上调用checkAuth方法。这就是问题的症结所在。应用程序无法完成身份验证。出现一些错误,身份验证未完成。我将LogLevel设置为Debug,并在控制台中获得以下输出:

除了/connect/token端点可能返回400之外,这里并没有什么能够真正帮助我理解发生了什么或者身份验证失败的原因。但是,如果我提供了库所需的所有配置,我对此无能为力,对吧?
如果有人有任何建议,或者可以以任何方式提供帮助,那就太好了。我还检查了身份验证服务器上的日志,看看是否能找到什么。
发布于 2020-08-21 01:49:23
我不会说这是每个人的答案,但这确实对我们有效。我们需要向客户端定义添加以下属性:
RequirePkce = true,
RequireClientSecret = false,
AllowOfflineAccess = true将这三个属性添加到客户端定义中,可以使一切按预期工作。
https://stackoverflow.com/questions/63509985
复制相似问题