Token.php 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. /**
  3. *
  4. * User: anyluck
  5. * Date: 2020/6/1
  6. * Time: 16:29
  7. */
  8. namespace app\middleware;
  9. use think\facade\Request;
  10. class Token
  11. {
  12. public function handle($request, \Closure $next)
  13. {
  14. try {
  15. $authorization = Request::header("authorization"); //获取请求中的authentication字段,值形式为USERID asdsajh..这种形式
  16. $authorization = explode(" ", $authorization);//explode分割,获取后面一窜base64加密数据
  17. $authorizationInfo = explode(":", base64_decode($authorization[1])); //对base_64解密,获取到用:拼接的自字符串,然后分割,可获取appid、accesstoken、uid这三个参数
  18. $user = $authorizationInfo[0];// 用户名
  19. $user_id = $authorizationInfo[1];// 用户id
  20. $token = $authorizationInfo[2];// 用户token
  21. Request::instance()->tokens = $token;
  22. Request::instance()->user_id = $user_id;
  23. Request::instance()->user = $user;
  24. } catch (\Exception $exception) {
  25. json_result(500,"请重新登录");
  26. return json($exception->getMessage(),400);
  27. }
  28. return $next($request);
  29. }
  30. }