Token.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace app\common\library;
  3. /**
  4. * Token操作类
  5. */
  6. class Token
  7. {
  8. /**
  9. * 存储Token
  10. * @param string $token Token
  11. * @param int $user_id 会员ID
  12. * @param int $expire 过期时长,0表示无限,单位秒
  13. */
  14. public static function set($token, $user_id, $expire = 0)
  15. {
  16. $expiretime = $expire ? time() + $expire : 0;
  17. \app\common\model\Token::create(['token' => $token, 'user_id' => $user_id, 'expiretime' => $expiretime]);
  18. return TRUE;
  19. }
  20. /**
  21. * 获取Token内的信息
  22. * @param string $token
  23. * @return array
  24. */
  25. public static function get($token)
  26. {
  27. $data = \app\common\model\Token::get($token);
  28. if ($data)
  29. {
  30. if (!$data['expiretime'] || $data['expiretime'] > time())
  31. {
  32. return $data;
  33. }
  34. else
  35. {
  36. self::delete($token);
  37. }
  38. }
  39. return [];
  40. }
  41. /**
  42. * 判断Token是否可用
  43. * @param string $token Token
  44. * @param int $user_id 会员ID
  45. * @return boolean
  46. */
  47. public static function check($token, $user_id)
  48. {
  49. $data = self::get($token);
  50. return $data && $data['user_id'] == $user_id ? true : false;
  51. }
  52. /**
  53. * 删除Token
  54. * @param string $token
  55. * @return boolean
  56. */
  57. public static function delete($token)
  58. {
  59. $data = \app\common\model\Token::get($token);
  60. if ($data)
  61. {
  62. $data->delete();
  63. return true;
  64. }
  65. return false;
  66. }
  67. /**
  68. * 删除指定用户的所有Token
  69. * @param int $user_id
  70. * @return boolean
  71. */
  72. public static function clear($user_id)
  73. {
  74. \app\common\model\Token::where('user_id', $user_id)->delete();
  75. return true;
  76. }
  77. }