Как мне установить cookie для другого домена? - PullRequest
0 голосов
/ 07 ноября 2019

Я запускаю 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 устанавливается.

1 Ответ

0 голосов
/ 07 ноября 2019

Если вы не укажете домен, он будет применяться только к определенному поддомену, на котором он был установлен.

Домен указывает разрешенные хосты для получения куки. Если не указано, по умолчанию используется хост текущего местоположения документа, за исключением поддоменов. Если указан домен, то субдомены всегда включаются.

Например, если задан домен = mozilla.org, файлы cookie включаются в субдомены, такие как developer.mozilla.org.

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

Таким образом, вам, вероятно, нужно указать домен 'example.com', чтобы он мог быть прочитан в обоих поддоменах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...