chenlong преди 4 години
родител
ревизия
3ec3d9d25f
променени са 2 файла, в които са добавени 32 реда и са изтрити 0 реда
  1. 16 0
      app/Http/Controllers/Auth/LoginController.php
  2. 16 0
      app/Services/Auth/JwtGuard.php

+ 16 - 0
app/Http/Controllers/Auth/LoginController.php

@@ -5,6 +5,8 @@ namespace App\Http\Controllers\Auth;
 use App\Shop\Admins\Requests\LoginRequest;
 use App\Http\Controllers\Controller;
 use Illuminate\Foundation\Auth\AuthenticatesUsers;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Cookie;
 
 class LoginController extends Controller
 {
@@ -68,4 +70,18 @@ class LoginController extends Controller
         $this->incrementLoginAttempts($request);
         return $this->sendFailedLoginResponse($request);
     }
+
+    /**
+     * Log the user out of the application.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function logout(Request $request)
+    {
+        $this->guard()->logout();
+        // 清除cookie
+        Cookie::queue(Cookie::forget('jwt_token'));
+        return $this->loggedOut($request) ?: redirect('/');
+    }
 }

+ 16 - 0
app/Services/Auth/JwtGuard.php

@@ -34,6 +34,13 @@ class JwtGuard implements Guard
      */
     protected $storageKey;
 
+    /**
+     * Indicates if the logout method has been called.
+     *
+     * @var bool
+     */
+    protected $loggedOut = false;
+
     /**
      * Create a new authentication guard.
      *
@@ -153,4 +160,13 @@ class JwtGuard implements Guard
 
         return $this;
     }
+
+    /**
+     * log out
+     */
+    public function logout()
+    {
+        $this->user = null;
+        $this->loggedOut = true;
+    }
 }