我不知道为什么我无法从邮递员(从服务器返回)中从标头授权中获取价值。
http://img110.xooimage.com/files/1/6/9/postman-567005e.png
我尝试了很多事情,但是我不知道为什么我仍然会得到一个空值。
http://img110.xooimage.com/files/b/c/f/debug-5670075.png
这是我的代码:
authentification-service.ts
login(u: User): Observable<HttpResponse<Response>> {
if ((u.username && u.password)) {
this.user.setUsername(u.username);
this.user.setPassword(u.password);
// @ts-ignore
const request = this.http.post<Response>(this.authUrl, this.user, {observe: 'response'} )
.pipe(
tap((data: any) => {
// @ts-ignore
this.log(`Succès ${data.status} authentification succès`, 'success');
this.navigateToCollection();
console.log('data');
console.log(data);
console.log('data.headers.get(Authorization)');
console.log(data.headers.get('Authorization'));
return localStorage.setItem(TOKEN_KEY, data.headers.get('Authorization'));
}),
catchError(this.handleError<any>('login',
console.log('je passe ici3')))
);
request.subscribe(value => {
// console.log(value.headers.get('Authorization'));
console.log(localStorage.getItem(TOKEN_KEY));
});
this.presentLoading(request);
console.log('je passe ici4');
return request;
} else {
this.log('Renseignez les champs', 'error');
alert('Erreur de login ou de mot de passe');
}
}
如果您需要更多信息,请通过我的服务认证(春季启动)发送我的令牌。
我想知道如何获取此标头值。
谢谢您的时间。
答案 0 :(得分:1)
您将必须从后端(服务器)公开标头或将其传递到响应正文中。
Access-Control-Expose-Headers:headerName; 在springBoot应用程序中添加以下代码:
response.setHeader("Access-Control-Expose-Headers", "Authorization");
否则,您将其获取为null,但是您将能够在POSTMAN中看到它。
答案 1 :(得分:0)
我解决了我的问题,我正在使用网关,但是您可以将其放在方法“配置”下面
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("*"));
configuration.setAllowedMethods(Arrays.asList("GET","POST", "PUT", "DELETE", "OPTIONS"));
configuration.setAllowedHeaders(Arrays.asList("authorization", "content-type"));
configuration.setExposedHeaders(Arrays.asList("authorization"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}