UserToken.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace app\models\user;
  3. use think\Model;
  4. class UserToken extends Model
  5. {
  6. protected $name = 'user_token';
  7. protected $type = [
  8. 'create_time' => 'datetime',
  9. 'login_ip' => 'string'
  10. ];
  11. protected $autoWriteTimestamp = true;
  12. protected $updateTime = false;
  13. public static function onBeforeInsert(UserToken $token)
  14. {
  15. if (!isset($token['login_ip']))
  16. $token['login_ip'] = app()->request->ip();
  17. }
  18. public static function createToken(User $user, $type): self
  19. {
  20. $tokenInfo = $user->getToken($type);
  21. return self::create([
  22. 'uid' => $user->uid,
  23. 'token' => $tokenInfo['token'],
  24. 'expires_time' => date('Y-m-d H:i:s', $tokenInfo['params']['exp'])
  25. ]);
  26. }
  27. /**
  28. * 删除一天前的过期token
  29. * @return bool
  30. * @throws \Exception
  31. */
  32. public static function delToken()
  33. {
  34. return self::where('expires_time', '<', date('Y-m-d H:i:s',strtotime('-1 day')))->delete();
  35. }
  36. }