Trần Văn Dũng
Beginner
Asked At:
1754079195000
In:
Spring
Gửi Nhận Cookie Từ Backend Và Frontend Khác Domain
<div class="markdown-block">Xin chào mọi người, hiện tại em làm một project cá nhân chạy trên localhost với spring và html thuần. Ở phía backend(port:8080) và frontend(port:8085) và cả 2 em đều đã cấu hình chạy trên https (<a href="https://localhost).Em" class="markdown-link" target="_blank">https://localhost).Em</a>có case như sau, khi thực hiện login từ backend em có set cookie như thế này:</div><div class="markdown-block">private void setTokenCookie(String tokenType, String token, long ttl, HttpServletResponse servletResponse) {</div><div class="markdown-block">if (servletResponse == null) {</div><div class="markdown-block">throw new AppException(ErrorCode.INTERNAL_SERVER_ERROR, "HttpServletResponse is null");</div><div class="markdown-block">}</div><div class="markdown-block">ResponseCookie tokenCookie = ResponseCookie.from(tokenType, token)</div><div class="markdown-block">.httpOnly(true)</div><div class="markdown-block">.secure(true) </div><div class="markdown-block">.path("/")</div><div class="markdown-block">.maxAge(Duration.ofSeconds(ttl))</div><div class="markdown-block">.sameSite("None")</div><div class="markdown-block">.build();</div><div class="markdown-block">servletResponse.addHeader("Set-Cookie", tokenCookie.toString());</div><div class="markdown-block">}</div><div class="markdown-block">Tiếp theo khi thực hiện logout:</div><div class="markdown-block">const response = await fetch(logoutApiUrl, {</div><div class="markdown-block">method: "POST",</div><div class="markdown-block">credentials: "include",</div><div class="markdown-block">headers: {</div><div class="markdown-block">"Content-Type": "application/json",</div><div class="markdown-block">Authorization: <code class="markdown-inline markdown-inline-code">Bearer </code>,</div><div class="markdown-block">},</div><div class="markdown-block">});</div><div class="markdown-block">private</div>