Driver.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkPHP [ WE CAN DO IT JUST THINK ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8. // +----------------------------------------------------------------------
  9. // | Author: liu21st <liu21st@gmail.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\common\library\token;
  12. /**
  13. * Token基础类
  14. */
  15. abstract class Driver
  16. {
  17. protected $handler = null;
  18. protected array $options = [];
  19. protected string $userTokenKey = "userToken";
  20. /**
  21. * 存储Token
  22. * @param int $userID 用户ID
  23. * @param string $token 凭证
  24. * @return bool
  25. */
  26. abstract function set(int $userID, string $token): bool;
  27. /**
  28. * 获取Token内的信息
  29. * @param int $userID
  30. * @return array
  31. */
  32. abstract function get(int $userID): array;
  33. /**
  34. * 获取加密后的Token
  35. * @param int $userID 用户ID
  36. * @return string
  37. */
  38. abstract function getEncryptedToken(int $userID): string;
  39. /**
  40. * 判断Token是否可用
  41. * @param string $token Token
  42. * @param int $userID 会员ID
  43. * @return boolean
  44. */
  45. abstract function check(int $userID, string $token): bool;
  46. /**
  47. * 删除用户的Token
  48. * @param int $userID 会员ID
  49. * @return boolean
  50. */
  51. abstract function delete(int $userID): bool;
  52. /**
  53. * 返回句柄对象,可执行其它高级方法
  54. *
  55. * @access public
  56. * @return object
  57. */
  58. public function handler(): ?object
  59. {
  60. return $this->handler;
  61. }
  62. }