簡體   English   中英

如何為不同的域設置 cookie?

[英]how do i set cookie for a different domain?

我正在運行 springboot,我試圖設置一個 cookie 並重定向一個頁面

origin: http://abc.example.com  (generate a cookie)
destination: http://xyz.example.com (set the cookie for login)

@RequestMapping(value = "/getUrl",
                method = RequestMethod.POST,
                produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody Object getRedirect(HttpServletRequest request,
                                        HttpServletResponse response) {
    String auth = generateKey();
    addCookie("auth", auth, response, -1);
    ResponseCode resp = new ResponseCode();
    resp.setUrl("http://xyz.example.com");

    return CommonUtil.toJson(resp);
}

public void addCookie(String name,
                      String value,
                      HttpServletResponse response, int exp) {
    Cookie cookie = new Cookie(name, value);
    cookie.setMaxAge(exp);
    cookie.setPath("/");

    response.addCookie(cookie);
}

和 HTML 一旦我收到請求,我將使用重定向

window.location.href=url;

但在xyz.example.com我沒有看到正在設置 cookie。

如果您不指定域,它將僅適用於設置它的特定子域。

域指定允許的主機接收 cookie。 如果未指定,則默認為當前文檔位置的主機,不包括子域。 如果指定了域,則始終包含子域。

例如,如果設置了 Domain=mozilla.org,那么 cookies 將包含在 developer.mozilla.org 等子域中。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies

因此,您可能需要指定一個“example.com”域,以使其在兩個子域上都可讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM