perf: 优化token到期时间

This commit is contained in:
kuaifan 2023-03-17 15:07:34 +08:00
parent c507251a8c
commit 83190d0f61
3 changed files with 16 additions and 5 deletions

View File

@ -299,7 +299,16 @@ class UsersController extends AbstractController
public function info() public function info()
{ {
$user = User::auth(); $user = User::auth();
User::generateToken($user, in_array(Base::platform(), ['ios', 'android'])); //
$refreshToken = false;
if (in_array(Base::platform(), ['ios', 'android'])) {
// 移动端token还剩7天到期时获取新的token
$expiredAt = Doo::userExpiredAt();
if ($expiredAt && Carbon::parse($expiredAt)->isBefore(Carbon::now()->addDays(7))) {
$refreshToken = true;
}
}
User::generateToken($user, $refreshToken);
// //
$data = $user->toArray(); $data = $user->toArray();
$data['nickname_original'] = $user->getRawOriginal('nickname'); $data['nickname_original'] = $user->getRawOriginal('nickname');

View File

@ -415,7 +415,7 @@ class User extends AbstractModel
} }
} }
if ($refresh) { if ($refresh) {
$days = $userinfo->bot ? 0 : max(1, intval(Base::settingFind('system', 'token_valid_days', 7))); $days = $userinfo->bot ? 0 : max(1, intval(Base::settingFind('system', 'token_valid_days', 15)));
$token = Doo::tokenEncode($userinfo->userid, $userinfo->email, $userinfo->encrypt, $days); $token = Doo::tokenEncode($userinfo->userid, $userinfo->email, $userinfo->encrypt, $days);
} else { } else {
$token = Doo::userToken(); $token = Doo::userToken();

View File

@ -44,6 +44,7 @@ class Doo
char* translate(char* val, char* val); char* translate(char* val, char* val);
char* md5s(char* text, char* password); char* md5s(char* text, char* password);
char* macs(); char* macs();
char* hostID();
EOF, "/usr/lib/doo/doo.so"); EOF, "/usr/lib/doo/doo.so");
$token = $token ?: Base::headerOrInput('token'); $token = $token ?: Base::headerOrInput('token');
$language = $language ?: Base::headerOrInput('language'); $language = $language ?: Base::headerOrInput('language');
@ -167,7 +168,7 @@ class Doo
public static function userExpired(): bool public static function userExpired(): bool
{ {
$expiredAt = self::userExpiredAt(); $expiredAt = self::userExpiredAt();
return $expiredAt != 'forever' && Carbon::parse($expiredAt)->isBefore(Carbon::now()); return $expiredAt && Carbon::parse($expiredAt)->isBefore(Carbon::now());
} }
/** /**
@ -176,7 +177,8 @@ class Doo
*/ */
public static function userExpiredAt(): string public static function userExpiredAt(): string
{ {
return self::string(self::doo()->userExpiredAt()); $expiredAt = self::string(self::doo()->userExpiredAt());
return $expiredAt === 'forever' ? '' : $expiredAt;
} }
/** /**
@ -233,7 +235,7 @@ class Doo
* @param int $days 有效时间(天) * @param int $days 有效时间(天)
* @return string * @return string
*/ */
public static function tokenEncode($userid, $email, $encrypt, int $days = 7): string public static function tokenEncode($userid, $email, $encrypt, int $days = 15): string
{ {
return self::string(self::doo()->tokenEncode($userid, $email, $encrypt, $days)); return self::string(self::doo()->tokenEncode($userid, $email, $encrypt, $days));
} }