• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

하위 도메인 쿠키 공유 관련

21.07.22 18:19 작성 조회수 603

0

안녕하세요 ^^

예를 들어 http://www.domain.com 이라는 asp.net core 사이트와 

http://test.domain.com 라는 asp.net core 사이트가 존재한다고 가정했을때 

http://www.domain.com에서 생성된 로그인 쿠키 정보를

http://test.domain.com에서 가져올수 있는 방법이 있을까요?

답변 2

·

답변을 작성해보세요.

0

vyrudaks님의 프로필

vyrudaks

질문자

2021.07.23

말씀 감사합니다^^

알려주신대로 해봤더니 두 사이트간의 쿠키가 공유되는건 확인했습니다.

다만  http://www.domain.com에서 아래 이미지와 같이  설정한뒤에 

http://www.domain.com 에서 로그인 후에 로그인한  사람의 id나 이름을 가져올때는

 User.FindFirst("Id").Value나 User.FindFirst("Name").Value로 가져올수 있는데요.

http://test.domain.com 에서 id나 이름을 가져올때는 

User.FindFirst("Id").Value , User.FindFirst("Name").Value로 가져올수가 없드라구요...

대신 http://www.domain.com 에서 로그인을 하면 

UserAuth 이름의 쿠키값 전체가 자동으로 암호화가 됩니다.

그 암호화된 쿠키값을 http://test.domain.com  에서 가져올수는 있습니다 

결론은

1. http://test.domain.com에서도 User.FindFirst("Id").Value방식으로 가져올수있는 방법이 

있는지 문의드리고자 합니다,

2. 만약 가져올수 있는 방법이 없다면

닷넷 코어에서 쿠키를 생성할때 자동으로 암호화를 시킨 값을

백단에서 임의로 복호화가 가능할지를 좀 문의드립니다 ^^

닷넷 코어가 처음이라..모르는게 너무 많습니다 ㅠㅠ

부탁드리겠습니다 강사님^^

 

0

vyrudaks님, 반갑습니다.

Startup 클래스의 ConfigureServices 메서드 맨 하단에 다음 코드를 추가합니다.

services.ConfigureApplicationCookie(c =>

{

    c.Cookie.Domain = ".domain.com";

});

이렇게 할 경우에 *.domain.com 사이트들에서 쿠키를 공유할 수 있는 것으로 알고 있습니다.

제가 테스트할 수가 없어서 테스트를 부탁드립니다.

P.S. 하위 도메인 쿠키라고 해서 모두 공유가 가능한 것이 아닙니다.

아래 링크는 브라우저 응답에서 호스트 domain 속성에 대해 허용 및 거부되는 도메인을 보여줍니다.

https://gist.githubusercontent.com/SkrewEverything/23a97c8af5a58ece96841a81e285b0e0/raw/92587599d962d421b3fa36e0f7f40bd8900b83ae/Cookies%20accepted%20domain%20attributes.md

즐거운 코딩하세요.