角度服务
public extractUsername(token) {
const headers = new HttpHeaders();
headers.set('token', token);
return this.http.get('http://localhost:8081/extractUsername', {headers});
}
弹簧启动方法
@GetMapping("/extractUsername")
public String extractUsername(@RequestBody(required=false) TokenRequest tokenRequest) {
String username = jwtUtil.extractUsername(tokenRequest.getToken());
return username;
}
我无法通过此角度请求获得令牌
所以我的问题是我可以在get request中使用requestbody方法吗?在邮递员中,它应按预期工作,如果可能的话,角度服务应如何看待? 我是新来的,感谢您的回应。
答案 0 :(得分:2)
在“角度”侧,未设置标头值。您需要分配集合或将结果附加回变量:
const headers = new HttpHeaders().set('token', token);
在控制器中,您必须从请求中提取标头。在Spring中,您可以使用@RequestHeader批注来完成此操作:
@GetMapping("/extractUsername")
public String extractUsername(@RequestHeader(value="token") String token) {
String username = jwtUtil.extractUsername(token);
return username;
}
或者,您也可以将HttpServletRequest注入该方法并从请求中提取它:
@GetMapping("/extractUsername")
public String extractUsername(HttpServletRequest request) {
String username = jwtUtil.extractUsername(request.getHeader("token"));
return username;
}