如何使用javax.servlet.http.HttpServletResponse或JavaScript为不同的域设置Cookie?

时间:2019-07-15 13:04:56

标签: javascript java angularjs spring cookies

我正在编写集成了两个系统的代码,我想登录后端,所以没人能看到密码String。

这就是应用程序的流程:

  1. 我从客户端应用程序(angularJS)向后端应用程序(Java8 Spring)发送请求,以访问以下端点(/ orders / redirect)的访问方法。
  2. 控制器方法向另一个系统询问用于登录的令牌。
  3. 我登录时传递了我从上一个请求中获得的电子邮件,密码和令牌(该方法将重定向重定向到我应该登录的页面)。
  4. 然后,我想将客户端应用程序重定向到我从以前的登录功能获得的url,但是要保持登录状态,我需要传递2个从前一个请求的响应中收到的Cookie。 (“ laravel-session”,“ XSRF-TOKEN”)

但是,我无法为上述Cookie设置域。因此,我无法继续登录该网站。

我尝试通过以下方法用其域设置cookie:

使用JavaScript

document.cookie = "XSRF-TOKEN=eyJpdiI6IjlZZzlcL...; domain=xx.xxx.xxx.xxx; 

或:

$cookies.put('XSRF-TOKEN','eyJpdiI6IjlZZzlcL...',{
                         domain: xx.xxx.xxx.xxx,
                         });

使用Java:

Cookie test = new Cookie("XSRF-TOKEN", 'eyJpdiI6IjlZZzlcL...');
test.setDomain("xx.xxx.xxx.xxx");


httpServletResponse.addCookie(test);

response.sendRedirect("url that login method redirects to");

我想重定向到该页面(第二个应用程序的登录端点也重定向到该页面),但是要在浏览器中同时从后端应用程序调用登录端点。

我的问题是是否有可能?

0 个答案:

没有答案