我已将库angular-oauth2-oidc
设置为与 Auth0 一起使用。但是,Auth0 不断向我发送一个非常短的访问令牌,例如mSNhEfdDHK6t-kT5QweRtgec-FPGAsdfEw9
,而不是完整的 JWT 令牌。以下是重现该问题的方法:
- 在 Auth0 中创建一个您希望作为资源访问的示例“API”。
- 在 Auth0 中为隐式流创建 SPA 应用程序设置。
- 按照快速入门
angular-oauth2-oidc
或克隆我的示例存储库。 按照以下方式配置它:
export const authConfig: AuthConfig = { issuer: 'https://your-tenant-name.eu.auth0.com/', clientId: 'your-spa-client-id-here', redirectUri: window.location.origin + '/index.html', scope: 'openid profile email', };
initImplicitFlow()
通过单击应用程序上的登录按钮来触发呼叫。
当你这样做时:
- 结果:完整的 JWT IdToken,但较短的 AccessToken。
- 预期:两个令牌都是完整的 JWT 令牌。
Auth0 社区论坛上有这个帖子解释了为什么你会得到这样一个“不透明的字符串”作为访问令牌。最受接受的答案提到了我已经在做的事情(sope
就像我做的那样,打电话/authorize
等)。但是,在该线程的较低位置它提到设置audience
调用时/authorize
的解决方案,无论如何这似乎是一件好事。
但是你如何发送audience
?类型上没有这样的AuthConfig
属性来设置它,并且查看initImplicitFlow()
源它只是直接改变location.href
,所以那里也没有拦截。