我正在使用Spring Boot和Angular 6开发示例应用程序 我将Spring Security与基于表单的登录一起使用
我在身份验证时面临以下问题
1)用户使用基于表单的登录名进行身份验证,并在Cookie中返回JSESSIONID
2)当浏览器发送下一个请求时,JSESSIONID
cookie在请求中未发送,导致基于cookie的身份验证失败
搜索了一下之后,我发现了Angular 6.x / Set jsessionid cookie的答案,该答案使用HttpInterceptor
在请求中发送JSESSIONID
cookie。
但是我的问题是:如何首先读取JSESSIONID
cookie?
我们需要为此编写任何服务吗?
除上述方法外,我们可以使用{withCredentials = true}
方法,但是它需要在代码中的每个请求中添加,这似乎不是有效的解决方案。
是否有其他方法可以解决此问题?
请帮助
答案 0 :(得分:1)
我可以给您提供示例示例,我们正在使用JWT身份验证 1.在login()期间,正在获取承载令牌并在会话存储中进行设置。 (具有加密格式。) 2.我写了如下的拦截器:
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let token= JSON.parse(this.store.getStoreItem('token'));
request = request.clone({
setHeaders: {
Authorization: `Bearer ${token}`
}
});
return next.handle(request);
}
感谢和问候, Kishore Kumar。 K