【发布时间】:2019-12-03 18:20:09
【问题描述】:
我正在尝试在我的 Angular 项目中配置 Oauth2 以进行登录。 我已经通过阅读文档对其进行了配置,但是每当我登录时 它给了我 Unauthorized 错误,我不知道如何解决它。 我的配置是
身份验证配置
export const authConfig: AuthConfig = {
// Url of the Identity Provider
issuer: 'my api base URL',
// URL of the SPA to redirect the user to after login
redirectUri: window.location.origin + '/worklists',
clientId: 'oAuth2-login',
responseType: 'code',
scope: 'open worklists genstate',
};
应用组件
private configure() {
this.oauthService.configure(authConfig);
this.oauthService.tokenValidationHandler = new JwksValidationHandler();
this.oauthService.loadDiscoveryDocumentAndTryLogin();
}
应用模块
OAuthModule.forRoot({
resourceServer: {
allowedUrls: ['my api base url'],
sendAccessToken: true
}
})
jwt 拦截器
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
this.idToken = this.authService.getAccessToken() || '';
// cloning original request and set/add new headers
const authReq = req.clone({
headers: this.idToken
? req.headers
.set('Authorization', `Bearer ${this.idToken}`)
.set('Access-Control-Allow-Origin', '*')
: req.headers,
params: req.params
});
console.log(authReq, 'auth req');
return next.handle(authReq);
}
这是我的登录服务
public login(payload: LoginPayload, rememberMe: boolean = false) {
return this.httpService.post('/oauth/authorize', payload).pipe(
first(),
map((resp: LoginResponse) => {
console.log(resp, 'response')
return this.sessionService.storeLoginResponse(resp, rememberMe);
})
);
}
我认为这是访问令牌或我的配置的问题 有人能帮我吗? 谢谢
【问题讨论】:
标签: javascript angular typescript authentication oauth-2.0