如何从Spring Security成功处理程序将值传递到Angular index.html

时间:2018-08-07 10:21:40

标签: spring angular

如何从Spring安全成功处理程序中将值(用户名,language_code等)传递到Angular的“ index.html”?

我目前正在使用此代码从服务器加载角度应用程序:

response.sendRedirect(request.getContextPath() + "/admin/index.html");

2 个答案:

答案 0 :(得分:1)

有多种方法可以解决此问题。考虑到您正在构建单页应用程序:

  1. 您实际上可以从angular发送一个Ajax GET用户详细信息请求,以在Angular应用程序首次加载时获取详细信息
  2. 您可以在发送如下所示的重定向调用之前设置一个简单的cookie作为响应,并使用JS从您的前端读取其值
  

response.addCookie(“ details”,userName +“:” + languageCode)

答案 1 :(得分:0)

我不建议您在Angular中使用标准Spring Security身份验证。最好的选择是使用Spring Security OAuth2 / JWT从Angular启用身份验证。

但是您可以像以下重定向一样将userNamelanguage_code作为查询字符串发送

response.sendRedirect(request.getContextPath() + "/admin/index.html?userName="+userName+"&language_code=en");

还有以下Angular中的查询字符串

import { ActivatedRoute } from '@angular/router';

....

export class YourComponent {

    userName: string;

    langCode: string;

    constructor(
      private route: ActivatedRoute,
    ) { }

   ngOnInit() {
     this.route.queryParams.subscribe(queryParams =>
       this.userName = queryParams['userName'];
       this.langCode = queryParams['language_code'];
     );
   }

}