최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

 

Node.js example for SameSite=None; Secure

크롬에서 도메인이 다은경우 쿠키가 전송되지 않는 문제

 

A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. It has been blocked, as Chrome now only delivers cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.

 

 

https://en.wikipedia.org/wiki/HTTP_cookie#SameSite_cookie

 

HTTP cookie - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Small pieces of data stored by a web browser while on a website An HTTP cookie (also called web cookie, Internet cookie, browser cookie, or simply cookie) is a small piece of data stor

en.wikipedia.org

 

github.com/GoogleChromeLabs/samesite-examples

 

GoogleChromeLabs/samesite-examples

Examples of using the SameSite cookie attribute in a variety of language, libraries, and frameworks. - GoogleChromeLabs/samesite-examples

github.com

SameSite=None, Secure=True 옵션을 주기위해서 제일먼저 express의 버전을 4.17.1 로 업글했다

 

(invalid SameSite Option 이 떠서...)

 

그리고 cookie의 버전을 0.4.1 로 올렸다 

 

cookie

HTTP server cookie parsing and serialization

www.npmjs.com

(버전 0.3.1부터 SameSite속성을 지원하고 버전 0.4.0부터 None값을 지원합니다 .)

// Set a same-site cookie for first-party contexts
response.cookie('cookie1', 'value1', { sameSite: 'lax' });
// Set a cross-site cookie for third-party contexts
response.cookie('cookie2', 'value2', { sameSite: 'none', secure: true });

 

이전 버전을 사용하는 경우를 Set-Cookie사용하여 헤더를 직접 보내야합니다 response.setHeader(). 이것을 호출하면 프로세스 초기에 설정 한 모든 것을 덮어 쓰므로 여기에서 모든 쿠키를 설정해야합니다.

response.setHeader('set-cookie', [
  'cookie1=value1; SameSite=Lax',
  'cookie2=value2; SameSite=None; Secure',
]);

 

실제적용은..

cookies.setCookie = (res, token) => {
  res.cookie("access_token", token, {
    sameSite:'none',
    secure: true, // https, ssl 모드에서만
    maxAge: 1000*60*60*24*1, // 1D
    httpOnly: true, // javascript 로 cookie에 접근하지 못하게 한다.
  });
}
댓글