ProcurementApiAuth.php 838 B

123456789101112131415161718192021222324252627282930313233343536
  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. $key = config('weiXin.jwt.JWT_SECRET');
  19. try{
  20. $loginUser=JWT::decode($jwt,$key,$alg);
  21. }
  22. catch (\Exception $e)
  23. {
  24. return response()->json('token无效:'.$e);
  25. }
  26. if ($loginUser) $user=User::query()->find($loginUser->data->id);
  27. if ($user) Auth::login($user);
  28. return $next($request);
  29. }
  30. }