UserSession.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Models;
  3. class UserSession extends BaseModel
  4. {
  5. protected $table = 'user_session';
  6. protected $fillable = ['user_id', 'token', 'expire_time'];
  7. public $timestamps = true;
  8. protected $dateFormat = 'U'; // U 代表 UNIX 时间戳(int)
  9. // 2. 修改创建时间字段名为 create_time
  10. const CREATED_AT = 'create_time';
  11. const UPDATED_AT = 'update_time';
  12. public static function setToken($userId)
  13. {
  14. $time = time();
  15. $userSession = UserSession::where('user_id', $userId)->first();
  16. //获取token延长过期的时间
  17. $expireTime = $time + 3600 * 24 * 7;
  18. $token = create_token($userId);
  19. //token处理
  20. if ($userSession) {
  21. //重新获取token
  22. $userSession->token = $token;
  23. $userSession->expire_time = $expireTime;
  24. $userSession->update_time = $time;
  25. $userSession->save();
  26. } else {
  27. //找不到在该终端的token记录,创建token记录
  28. $userSession = UserSession::create([
  29. 'user_id' => $userId,
  30. 'token' => $token,
  31. 'expire_time' => $expireTime
  32. ]);
  33. }
  34. return $token;
  35. }
  36. }