我设置了the angular-oauth2-oidc
库以用于Auth0。但是,Auth0一直向我发送一个非常短的访问令牌,例如mSNhEfdDHK6t-kT5QweRtgec-FPGAsdfEw9
,而不是完整的JWT令牌。重现此问题的方法如下:
angular-oauth2-oidc
或克隆my sample repo开始快速入门。按以下步骤进行配置:
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()
调用。
这样做时:
有this thread on the Auth0 community forums解释了为什么获得访问令牌这样的“不透明字符串”的原因。被接受的最上面的答案提到了我已经在做的事情(像我所做的{sope
,称呼/authorize
,等等)。但是,在该线程的下面,它提到在调用audience
时设置/authorize
是解决方案,无论如何这似乎是一件好事。
但是您如何发送audience
?在the AuthConfig
type上没有这样的属性可以进行设置,而在initImplicitFlow()
的源代码中,它只是直接修改了location.href
,所以那里也没有拦截。
答案 0 :(得分:0)
您快到了。尽管将audience
作为AuthConfig
类型的特定属性可能会很好,但是已经有一种配置它的方法:为此使用the customQueryParams
:
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',
customQueryParams: {
audience: 'https://your-api-audience-id.example.com',
},
};
audience
是您在Auth0中配置的标识符。这是管理界面中的屏幕截图: