td; dr: Ich sende eine JSON-Antwort an die Authentifizierungsanfrage, aber der Session-Cookie fehlt.Laravel 5.2 Auth sendet kein Cookie
Ich benutze eine Login-Methode ähnlich der Illuminate\Foundation\Auth\AuthenticatesUsers
eins. In meinem Fall wird die Antwort im JSON-Format und keine Ansicht gerendert. Hier ist der Controller-Code:
class DashboardController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
protected $guard = 'web';
public function login(LoginRequest $request)
{
$throttles = $this->isUsingThrottlesLoginsTrait();
if ($throttles && $lockedOut = $this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
$credentials = $this->getCredentials($request);
if (Auth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) {
Auth::user()->incrementLoginCounter();
return $this->handleUserWasAuthenticated($request, $throttles);
}
if ($throttles && ! $lockedOut) {
$this->incrementLoginAttempts($request);
}
return $this->sendFailedLoginResponse($request);
}
}
Es ist im Grunde die gleiche Sache wie die Eigenschaft von Laravel.
Das Problem: Es wird kein Cookie mit der Antwort gesendet. Hier
ist das, was ich weiß:
- die remember_token Spalte der Benutzertabelle in der Datenbank wird immer richtig eingestellt
- i Cookies manuell mit
response()-> ... ->cookie('name', 'value')
- die manuell eingestellt Cookies können, sind in der Antwort richtig gesendet
- der Guard-Treiber ist auf
session
eingestellt, der Anbieter ist auf dieApp\User
Klasse festgelegt
- der Session-Treiber ist
file
und Config ist die Standard-Laravel-Konfiguration - Die Web-Middleware ist die gleiche wie Standard, Csrf-Middleware ist auf diesem Endpunkt ausgeschaltet.
Was denn ich bin die Hoffnung: Im besten Fall - eine Lösung für das Problem oder irgendwelche tipps und Ideen auf, was ich, um herauszufinden, testen konnte, warum es nicht funktioniert.