2017-12-12 3 views
1

메인 도메인에서 AJAX 요청을 호출하는 하위 도메인에 로그인 버튼이 있습니다. CORS를 작동 시키려면 메인 도메인에서 유효성을 검사하기 위해 요청한 올바른 도메인을 가져야합니다.Laravel PHP referer

3k 서브 도메인이 모두 유효하기 때문에 정확한 하위 도메인을 사용할 수 없으며 불필요하게 부담이되므로 각 요청마다 동적으로 추가 할 수 없습니다.

내가 원하는 것은 어떻게 든 요청자로부터 리퍼러를 꺼내는 방법이지만, $_SERVER['HTTP_REFERER']은 항상 작동하지 않습니다.

리퍼러가 설정 될 때마다 예외없이 리퍼러를 가져올 수있는 방법이 있습니까?

그렇지 않은 경우 리퍼러 헤더를 요청에 첨부하도록 강제 할 수 있습니까?

+2

아니요, http는 상태가없는 프로토콜입니다. – nogad

+0

정확한 참조자를 보내는 것은 사용자의 몫입니다. 그들이하지 않으면 그들은 페이지와 깊은 연관이있을 수 있으며 CORS는 그렇게하지 못하도록되어 있습니다. 리퍼러가 설정되지 않은 일반적인 사용 사례가 있습니까? – apokryfos

+2

HTTP Referer가 안정적이지 않습니다. 그것은 의미가 아닙니다. 문제에 대한 다른 해결책을 찾아야합니다. 우리가 그 문제를 해결하기를 원한다면 문제를보다 자세하게 설명해야합니다. – deceze

답변

0

예, 리퍼러 헤더를 요청에 첨부 할 수있는 간단한 방법이 있습니다. 프론트 엔드 코드에 약간의 변경 만 있으면되므로 매우 쉽습니다.

리퍼러를 URL 매개 변수로 추가하여 명시 적으로 전송하면됩니다.

http://www.yourdomain.com/login?referer=sub.yourdomain.com 

쿼리 매개 변수는 이미 프리 플라이트 요청에 전송되고 올바른 CORS 헤더를 설정하는 백엔드에 의해 평가 될 수있다.