programing

대응: 하위 도메인으로 리디렉션할 때 쿠키 보존

prostudy 2022. 3. 24. 22:18
반응형

대응: 하위 도메인으로 리디렉션할 때 쿠키 보존

다음과 같은 자체 하위 도메인으로 인증된 후 사용자를 리디렉션해야 함

company.test.com로부터test.com

인증 페이지는 다음에 열린다.test.com성공적인 인증에 대한 응답을 받으면 데이터베이스에서 사용자의 하위 도메인 이름을 얻는다.그래서 회사명xyz로 리디렉션해야 함xzy.test.com, 그 부분은 이미 끝났다.

문제는 사용자의 세션이다.인증된 사용자 데이터를 Reducx에 저장하고 페이지가 새로 고쳐지거나 하위 도메인으로 리디렉션되면 사용자 데이터가 손실된다.

내가 생각할 수 있는 것은 인증된 사용자를 통과해야 한다는 것뿐입니다.id다음과 같은 하위 도메인과 함께xyz.test.com/encrypted-user-id경로로 이동하면 백엔드에서 사용자 ID를 얻고 암호를 해독할 것이며 다시 암호를 묻지 않고 사용자 로그인을 강제할 것이다.

제 질문은...다른 방법이 있을까?만약 그렇지 않다면, 이것은 이것을 해결할 수 있는 가능한 방법인가?

그렇다, 여러분의 질문을 해결할 수 있는 다른, 정확한 방법이 있다.

나는 두 부분으로 대답하려고 노력할 것이다: 첫째는 루트-도메인과 하위-도메인 사이의 쿠키를 가능하게 하는 것, 둘째는 라라벨에서 이것을 하는 방법.

루트 도메인과 하위 도메인 간에 쿠키를 사용할 수 있도록 설정:

쿠키 헤더를 수신할 때 브라우저가 하위 도메인에서 쿠키를 공유하도록 지시할 수 있다.이는 에 도메인을 추가함으로써 달성된다.Set-Cookie머리글

Set-Cookie: user=JohnDoe; domain=testdomain.com

RFC-6265를 기준으로 위의 구문은 브라우저에 쿠키가 설정되었음을 알려준다.test.com모든 하위 도메인(즉, 모든 하위 도메인)에 사용할 수 있도록 해야 한다.a.test.com,xyz.test.com) 자세한 설명은 SO에 대한답변을 참조하십시오.

Laravel의 하위 도메인에서 쿠키를 사용할 수 있도록 설정:

Laravel 문서에 따르면cookie함수는 php가 수용한 모든 주장을 받아들인다.[setcookie][4]기능하다(보아라).path그리고domain논거.

예를 들어, 한 에 다음과 같이 쓸 수 있다.

$path = '/'; // make cookie available on all paths
$domain = "test.com";  // according to rfc6265 make available on root and subdomains
return $response($content)->cookie($name, $value, $minutes, $path, $domain);

또 다른 방법으로는, 모든 쿠키를 뿌리와 하위 도메인에서 공유하는 것은 제이콥 베넷의 작은 조각에서 나온 것이다.거기서 제안하는 것은 원하는 값을 설정하기 위함입니다.domain에 있어서 가변적인.config/session.php. 그러면 모든 (!) 쿠키는 하위 도메인에서 사용할 수 있게 될 것이다.

프런트엔드 측(React)은 「리디렉션」 외에 특별한 일을 해서는 안 된다.

참조URL: https://stackoverflow.com/questions/56639567/react-preserve-cookies-when-redirecting-to-sub-domain

반응형