【发布时间】:2021-11-14 02:40:35
【问题描述】:
这是我的问题
我正在尝试使用 angular-oauth2-oidc 实现 SSO 和 OAuth2 流。我可以使用 POSTMAN 和 ThunderClient(VS 代码)获得正确的响应(access_token),但不能使用 Angular
这是我的配置:
authCodeFlowConfig: AuthConfig = {
issuer: 'https://URL.com/',
loginUrl: 'https://URL.com/authorize-client',
clientId: environment.API.CLIENT_ID,
responseType: 'code',
scope: environment.API.SCOPE,
tokenEndpoint: 'https://URL.com/request-access',
dummyClientSecret: environment.API.CLIENT_SECRET,
redirectUri: window.location.origin,
showDebugInformation: true,
}
...
constructor(
private httpClient: HttpClient,
private oauthService: OAuthService
) {
this.getAuthorizeClientCode()
}
...
getAuthorizeClientCode() {
this.oauthService.configure(this.authCodeFlowConfig);
this.oauthService.tokenValidationHandler = new JwksValidationHandler()
this.oauthService.tryLogin({
onTokenReceived: context => {
console.log(context)
}
})
.then(() => {
if (this.oauthService.hasValidAccessToken()) {
this.oauthService.silentRefresh()
} else {
this.oauthService.initCodeFlow();
}
})
.catch(err => console.log(err))
}
会发生什么:流程一直运行到某一点。我登录并获取代码并调用端点“request_access”,但就是这样,令牌端点向我抛出了一个错误:
当我检查网络选项卡时,我的信息就在那里:
我到处搜索,但我真的不知道我错过了什么,因为流程在 POSTMAN 中有效,但在 Angular 中无效。
【问题讨论】:
-
你能和后端团队核实一下吗,他们已经配置了cors。
标签: javascript angular oauth-2.0 single-sign-on access-token