У меня есть поток OAuth2 (реализован с использованием spring-boot-starter-security и spring-security-oauth2-client ).
- клиент заходит в / authorize / { провайдера }? redirect_uri = { redirectURL }
- Клиенту показывается страница входа в систему провайдера и его просят авторизовать
- Как только клиент (JavaScript) авторизует приложение, сервер ресурсов (Spring Boot 2.2.3) обменивается кодом авторизации с сервером авторизации провайдера для токена доступа
Затем сервер ресурсов отправляет клиента на redirectURL с токеном JWT, установленным в коде ie, следующим образом:
Cookie cookie = new Cookie("token", token);
long expiryMsec = (int) appProperties.getAuth().getTokenExpirationMsec();
int expiry = (int) Math.floor(expiryMsec/1000.0);
cookie.setMaxAge(expiry);
cookie.setHttpOnly(true);
response.addCookie(cookie);
Хотя этот код ie не устанавливается, и когда следующий запрос приходит в куки все еще пусто. Я думаю, что повар ie теряется во время перенаправления или chrome не позволяет установить повар ie из-за проблем с источником. Какова бы ни была причина, есть ли обходной путь для этого, я не хочу устанавливать повар ie с клиента.
Я использую Chrome - 79.0.3945.130
Ссылки :
https://github.com/request/request/issues/1502
Chrome не отправляет файлы cookie после перенаправления