在Angular 5 + Spring启动应用程序中。 SPA角度应用程序通过index.html加载。
我的要求是在企业验证码javascript库中设置会话ID,该库将作为首页组件的一部分加载。
我的问题是,角度应用程序是通过index.html从tomcat加载的,而tomcat尚未启动任何会话。
在通常情况下,我们将使用localStrorage的无状态委托和基于令牌的身份验证。
但是在这种情况下,由于与企业验证码实现绑定,因此必须在js加载时间中传递会话ID,然后在验证时间中也传递会话ID(这通过其余端点调用发生)。 企业验证码是这样的,
使用会话ID加载Javascript对象->针对<-进行验证 在休息点服务中调用validate时,后端请求中的会话ID。
在JSP页面中,就像
third_party_javascript_api_object.setSessionId('<%= session.getId() %>');
在我的角度分量中
export class MyCustomCaptchaComponent implements OnInit {
constructor(private service: MyService, private route: ActivatedRoute, private cookieService: CookieService ) { }
ngOnInit() {
**third_party_javascript_api_object.setSessionId(sessionIDFromCookie);**
console.log(document.cookie.split(';'));
const ca: Array<string> = document.cookie.split(';');
console.log(ca[0]);
console.log(this.cookieService.get('JSESSIONID'));
但是由于这些不是在加载此组件时创建的会话,即index.html未设置cookie或会话。
这里的任何帮助都会很棒