대응: 하위 도메인으로 리디렉션할 때 쿠키 보존
다음과 같은 자체 하위 도메인으로 인증된 후 사용자를 리디렉션해야 함
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
'programing' 카테고리의 다른 글
Vue.js 하위 구성 요소를 구성 요소로 가져오기 (0) | 2022.03.24 |
---|---|
마우스오버 시 클래스를 동적으로 추가 및 제거 - Vue.js (0) | 2022.03.24 |
라우터 4 응답.활성 경로 가져오기 (0) | 2022.03.24 |
이 코드 조각에서 (이것은) 어떤 의미인가? (0) | 2022.03.24 |
조건부로 입력 비활성화(Vue.js) (0) | 2022.03.24 |