diff --git a/app/Models/User.php b/app/Models/User.php index 832a6ac23..40bf45d7e 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -567,6 +567,23 @@ class User extends AbstractModel return $userinfo->token = $token; } + /** + * 生成无设备的 token(主要用于接口调用,此 token 不检查设备是否存在) + * @param self $userinfo + * @param int $days + * @return mixed + */ + public static function generateTokenNoDevice($userinfo, $days = 3) + { + $key = 'user_token_' . $userinfo->userid . '_' . $days; + $ttl = now()->addDays($days); + return Cache::remember($key, $ttl, function () use ($userinfo, $ttl, $days) { + $token = Doo::tokenEncode($userinfo->userid, $userinfo->email, $userinfo->encrypt, $days); + Cache::put(UserDevice::ck(md5($token)), $userinfo->userid, $ttl); + return $token; + }); + } + /** * userid 获取 基础信息 * @param int $userid 会员ID diff --git a/app/Models/UserDevice.php b/app/Models/UserDevice.php index 31f7ed18c..939c676ff 100644 --- a/app/Models/UserDevice.php +++ b/app/Models/UserDevice.php @@ -79,7 +79,7 @@ class UserDevice extends AbstractModel * @param string $hash * @return string */ - private static function ck(string $hash): string + public static function ck(string $hash): string { return "user_devices:{$hash}"; } diff --git a/app/Tasks/BotReceiveMsgTask.php b/app/Tasks/BotReceiveMsgTask.php index 2da5ccf35..d4733269f 100644 --- a/app/Tasks/BotReceiveMsgTask.php +++ b/app/Tasks/BotReceiveMsgTask.php @@ -540,7 +540,7 @@ class BotReceiveMsgTask extends AbstractTask 'nickname' => $userInfo->nickname, 'profession' => $userInfo->profession, 'lang' => $userInfo->lang, - 'token' => Doo::tokenEncode($userInfo->userid, $userInfo->email, $userInfo->encrypt, 3), + 'token' => User::generateTokenNoDevice($userInfo), ]; } $res = Ihttp::ihttp_post($webhookUrl, $data, 30);