VerifySessionToken.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace app\common\middleware;
  3. use app\exception\BaseException;
  4. use app\Request;
  5. use think\facade\Cache;
  6. class VerifySessionToken
  7. {
  8. /**
  9. * @param $request
  10. * @param \Closure $next
  11. * @return mixed
  12. * @throws BaseException
  13. */
  14. public function handle(Request $request, \Closure $next)
  15. {
  16. $params = $request->param();
  17. // if (isset($params['__TEST__']) && $params['__TEST__'] == __TEST__)
  18. // return $next($request);
  19. predicate(isset($params['session_token']),'session_token err');
  20. // $redis = Cache::store('redis')->handler(); //返回句柄对象,可执行其它高级方法
  21. // $is_exist = $redis->sismember('user:infos', $params['session_token']);
  22. // predicate(!$is_exist, '未登录', 403);
  23. $jwt = \Jwt::verifyToken($params['session_token']);
  24. if($jwt == false) {
  25. // $redis->srem('user:infos', $params['session_token']);
  26. predicate(false, '登录失效',403);
  27. }
  28. $request->setData($jwt['admin_id'], $jwt['nickname']);
  29. return $next($request);
  30. }
  31. }