1
메인 도메인의 서브 도메인에서 로그인 방법을 호출 중이며이를 처리해야하는 CORS 미들웨어를 만들었습니다. 그러나 예상대로 작동하지 않습니다.Laravel CORS issue
나는 요청이 특정 도메인에서 온 경우 확인하려면, 그래서 나는이 일을 시도 :
는public function handle($request, Closure $next)
{
if(!isset($_SERVER['HTTP_REFERER']))
return $next($request);
$originalDomain = config('session.domain');
$parsedUrl = parse_url($_SERVER['HTTP_REFERER']);
$splitDomain = explode('.', $parsedUrl['host'], 2);
$subdomain = $splitDomain[0];
$domain = $splitDomain[1];
$subdomainValid = ($parsedUrl['host'] != $originalDomain) && ($originalDomain == $domain);
if(!$subdomainValid)
return $next($request);
$allowedUrl = $parsedUrl['scheme'] . '://' . $subdomain . '.' . config('session.domain');
return $next($request)
->header('Access-Control-Allow-Origin', $allowedUrl)
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers', 'Origin, x-requested-with, x-csrf-token');
}
하지만 난 데 문제는 $_SERVER['HTTP_REFERER']
가끔 내가 기대 값을 반환하지 않습니다. 요청의 출처를 반환하면 안됩니까?
** 'HTTP_REFERER' 현재에 사용자 에이전트를 참조하는 페이지의 주소 (있는 경우) 페이지. 이것은 사용자 에이전트에 의해 설정됩니다. 모든 사용자 에이전트가이를 설정하는 것은 아니며 일부는 HTTP_REFERER를 기능으로 수정할 수있는 기능을 제공합니다. 간단히 말해서, 그것은 정말로 신뢰할 수 없습니다. ** – madalinivascu
좋아요, 그 해결책 은요? – Norgul
정적 URL을 사용 하시겠습니까? – madalinivascu