Alexander Musikhin hace 6 días
padre
commit
d321e48527

+ 4 - 1
app/Http/Controllers/Auth/LoginController.php

@@ -63,7 +63,10 @@ class LoginController extends Controller
             if (auth()->id()) {
                 $tokenFromRequest = trim((string)$request->input('token_fcm', ''));
                 $tokenFromSession = trim((string)$request->session()->get('token_fcm', ''));
-                $token = $tokenFromRequest !== '' ? $tokenFromRequest : $tokenFromSession;
+                $tokenFromCookie = trim((string)$request->cookie('token_fcm', ''));
+                $token = $tokenFromRequest !== ''
+                    ? $tokenFromRequest
+                    : ($tokenFromSession !== '' ? $tokenFromSession : $tokenFromCookie);
 
                 if ($token !== '') {
                     User::assignUniqueFcmToken((int)auth()->id(), $token);

+ 5 - 0
app/Http/Middleware/CatchTokenFcmMiddleware.php

@@ -5,6 +5,7 @@ namespace App\Http\Middleware;
 use App\Models\User;
 use Closure;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Cookie;
 use Symfony\Component\HttpFoundation\Response;
 
 class CatchTokenFcmMiddleware
@@ -24,6 +25,10 @@ class CatchTokenFcmMiddleware
             }
 
             session(['token_fcm' => $token]);
+
+            if ($token !== '') {
+                Cookie::queue(Cookie::forever('token_fcm', $token));
+            }
         }
         return $next($request);
     }