ProcurementApiAuth.php 787 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace App\Http\Middleware;
  3. use App\User;
  4. use Closure;
  5. use Firebase\JWT\JWT;
  6. use Illuminate\Support\Facades\Auth;
  7. class ProcurementApiAuth
  8. {
  9. public function handle($request, Closure $next)
  10. {
  11. $alg =
  12. [
  13. "typ" => "JWT", //声明类型为jwt
  14. "alg" => "HS256" //声明签名算法为SHA256
  15. ];
  16. $jwt = $request->header('token');
  17. $key = env('JWT_SECRET');
  18. try{
  19. $loginUser=JWT::decode($jwt,$key,$alg);
  20. }
  21. catch (\Exception $e)
  22. {
  23. return response()->json('token无效:'.$e);
  24. }
  25. if ($loginUser) $user=User::query()->find($loginUser->data->id);
  26. if ($user) Auth::login($user);
  27. return $next($request);
  28. }
  29. }