Mam problemy z Auth :: check() w subdomenie pośrednictwem żądań AJAX .. scenariusz: 2 subdomenylaravel Cors sesja subdomeny
www.testing.dev
api.testing.dev
Pojedyncze logowanie/sesji pomiędzy tymi dwoma .. w laravel config/session.php mam ustawiony 'domain' => ".testing.dev"
, i wszystko działa dobrze, jestem w stanie zalogować się na jednej stronie i nadal być zalogowany na drugiej stronie również!
Ale gdy używam ajax jest problem .. scenariusz: będąc w api.testing.dev
, ja wykonać z Firebug, js, niezależnie
$.ajax({
url: 'http://api.testing.dev/who',
type: 'GET',
cache: false
});
się api.stesting.dev/who
powraca:
public function getWho(){
return var_dump(Auth::user());
}
odpowiedzią jest informacja o moim koncie! wszystko poprawnie ..
Jeśli od www.testing.dev
wykonuję tę samą kwerendę ajax, otrzymuję Auth :: check() zwracając wartość null. Chociaż ja dostać normalną odpowiedź, więc nie ma problemu z wzajemnej konfiguracji domeny .. oto moje nagłówki w na trasie do api.testing.dev
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: OPTIONS, POST, GET, PUT, DELETE');
header('Access-Control-Allow-Headers: *');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Credentials: true');
Strona działa na localhost z wamp.
Edytuj: przy domyślnym sterowniku sesji 'driver' => 'file'
po pierwszym zalogowaniu w pliku app/storage/sessions
znajduje się jeden plik. A jeśli przejdę z jednej subdomeny do drugiej, żadne inne pliki nie zostaną wygenerowane. Chociaż podczas tworzenia ajaxa CORS, za każdym razem, gdy generowany jest nowy plik ...
Występuje tutaj dokładnie ten sam problem. –
Szybkie pytanie, jak skonfigurować domenę plików cookie? –
w pliku app/config/session.php, ustaw odpowiednio "domenę". (dla wielu witryn pod-domeny ustaw go na ".site.com") – ActonDev