Ich rufe eine Login-Methode von Subdomain auf Hauptdomain, und ich machte eine CORS-Middleware, die sich darum kümmern sollte. Es funktioniert jedoch nicht wie erwartet.Laravel CORS Ausgabe
Ich möchte überprüfen, ob Anfragen von einer bestimmten Domain kam, also versuchte ich dies zu tun:
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');
}
Aber das Problem, das ich habe, ist, dass $_SERVER['HTTP_REFERER']
manchmal nicht den Wert zurückgeben ich erwarte. Sollte es nicht Ursprung der Anfrage zurückgeben?
** ‚HTTP_REFERER‘ Die Adresse der Seite (falls vorhanden), die den User-Agent auf den aktuellen bezeichnet Seite. Dies wird vom Benutzeragenten festgelegt. Nicht alle Benutzeragenten werden dies festlegen, und einige bieten die Möglichkeit, HTTP_REFERER als eine Funktion zu ändern. Kurz gesagt, es kann nicht wirklich vertraut werden. ** – madalinivascu
Okay, und die Lösung? – Norgul
Verwenden Sie eine statische URL? – madalinivascu