|
@@ -0,0 +1,33 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Http\Middleware;
|
|
|
+
|
|
|
+use App\Models\User;
|
|
|
+use App\Modules\Admin\Services\AuthService;
|
|
|
+use Closure;
|
|
|
+use Illuminate\Auth\AuthenticationException;
|
|
|
+use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Facades\Auth;
|
|
|
+
|
|
|
+class AdminAuthMiddleware
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * Handle an incoming request.
|
|
|
+ *
|
|
|
+ * @param \Illuminate\Http\Request $request
|
|
|
+ * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
|
|
+ * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
|
|
|
+ */
|
|
|
+ public function handle(Request $request, Closure $next)
|
|
|
+ {
|
|
|
+ $token = $request->header('Authorization');
|
|
|
+ if (empty($token)) {
|
|
|
+ throw new AuthenticationException("need authorization");
|
|
|
+ }
|
|
|
+ $uid = app(AuthService::class)->decryptToken(substr($token, 7));
|
|
|
+
|
|
|
+ $u = User::findOrFail($uid);
|
|
|
+ Auth::login($u);
|
|
|
+ return $next($request);
|
|
|
+ }
|
|
|
+}
|