Sesiones persistentes en subdominios en Laravel 5

Usando 5.0

en config / session.php He configurado 'domain' => '.example.com' pero no funciona. No puedo continuar una sesión ni siquiera en un dominio como este.

Mi sitio tiene muchos subdominios:

 vancouver.example.com newyork.example.com 

etc … están alojados en el mismo servidor y son la misma aplicación Laravel (comparten el mismo directorio de almacenamiento)

Ingreso con las credenciales correctas, sobre las cuales la aplicación redirige a otra página en el sitio, y no tengo sesión en ese momento. var_dump(Auth::user()) muestra null aunque inicié sesión con las credenciales correctas.

storage/framework/sessions muestra 14 archivos diferentes allí, todos son para mí y los limpié antes de comenzar a probar esto.

Voy a adjuntar mi método AuthController @ postLogin a continuación, que funciona bien si session.php 'domain' => null

 public function postLogin(Request $request) { $this->validate($request, [ 'email' => 'required|email', 'password' => 'required', ]); $credentials = $request->only('email', 'password'); if ($this->auth->attempt($credentials, $request->has('remember'))) { Session::flash('message', 'You are now logged in.'); Session::flash('status', 'success'); if (str_contains($_SERVER['HTTP_REFERER'], '?goto=')) { $params = explode('?', $_SERVER['HTTP_REFERER'])[1]; $target = explode('=', $params)[1]; } else { $target = '/'; } return redirect($target); } return redirect($this->loginPath()) ->withInput($request->only('email', 'remember')) ->withErrors([ 'email' => $this->getFailedLoginMessage(), ]); } 

Lo averigué. Actualice domain => '.example.com' en domain => '.example.com' y borre las cookies para el sitio en cuestión.

@gadss

necesitas agregar una tabla de sesión como esta

 php artisan session:table composer dump-autoload php artisan migrate 

y cambie .env a SESSION_DRIVER SESSION_DRIVER=database

también modifica config / session.php

'driver' => env('SESSION_DRIVER', 'database') y

 'domain' => '.yourdomain.com' 

después de eso, borre la caché y las cookies de su navegador.

¿Has intentado guardar las sesiones en la base de datos, memcached o redis en lugar de hacerlo en archivos? Tuve una situación similar a la tuya y el almacenamiento de sesiones en la base de datos resolvió el problema para mí.

Por alguna razón, el controlador de sesión de Laravel no maneja correctamente las sesiones de dominio cruzado cuando se usa el controlador de archivo.