mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2026-03-19 04:29:45 +08:00
@@ -12,7 +12,7 @@ import {
|
||||
getTeamCollect,
|
||||
uploadAbyssData,
|
||||
} from "./request/abyssReq.js";
|
||||
import { loginPassport } from "./request/accountReq.js";
|
||||
import { getUserInfo, loginPassport, refreshToken } from "./request/accountReq.js";
|
||||
import { getCombatStatistic, uploadCombatData } from "./request/combatReq.js";
|
||||
import { transAbyssAvatars, transAbyssLocal } from "./utils/abyssUtil.js";
|
||||
import { transCombatLocal } from "./utils/combatUtil.js";
|
||||
@@ -50,11 +50,11 @@ const Hutao = {
|
||||
password: _,
|
||||
},
|
||||
token: {
|
||||
refresh: _,
|
||||
refresh: refreshToken,
|
||||
revoke: _,
|
||||
revokeAll: _,
|
||||
},
|
||||
info: _,
|
||||
info: getUserInfo,
|
||||
},
|
||||
Gacha: {
|
||||
log: _,
|
||||
|
||||
@@ -62,5 +62,39 @@ export async function loginPassport(
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
if (resp.retcode !== 0) return <TGApp.Plugins.Hutao.Base.Resp>resp;
|
||||
return resp.data;
|
||||
return <TGApp.Plugins.Hutao.Account.LoginRes>resp.data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新访问令牌
|
||||
* @since Beta v0.9.1
|
||||
*/
|
||||
export async function refreshToken(token: string) {
|
||||
const url = `${PassportUrl}RefreshToken`;
|
||||
const header = await getReqHeader();
|
||||
const data = { RefreshToken: rsaEncrypt(token) };
|
||||
const resp = await TGHttp<TGApp.Plugins.Hutao.Account.RefreshTokenResp>(url, {
|
||||
method: "POST",
|
||||
headers: header,
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
if (resp.retcode !== 0) return <TGApp.Plugins.Hutao.Base.Resp>resp;
|
||||
return <TGApp.Plugins.Hutao.Account.RefreshTokenRes>resp.data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户信息
|
||||
* @since Beta v0.9.1
|
||||
*/
|
||||
export async function getUserInfo(
|
||||
token: string,
|
||||
): Promise<TGApp.Plugins.Hutao.Account.InfoRes | TGApp.Plugins.Hutao.Base.Resp> {
|
||||
const url = `${PassportUrl}UserInfo`;
|
||||
const header = await getReqHeader(token);
|
||||
const resp = await TGHttp<TGApp.Plugins.Hutao.Account.InfoResp>(url, {
|
||||
method: "GET",
|
||||
headers: header,
|
||||
});
|
||||
if (resp.retcode !== 0) return <TGApp.Plugins.Hutao.Base.Resp>resp;
|
||||
return <TGApp.Plugins.Hutao.Account.InfoRes>resp.data;
|
||||
}
|
||||
|
||||
43
src/plugins/Hutao/types/Account.d.ts
vendored
43
src/plugins/Hutao/types/Account.d.ts
vendored
@@ -55,4 +55,47 @@ declare namespace TGApp.Plugins.Hutao.Account {
|
||||
/** refresh */
|
||||
RefreshToken: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* 刷新Token返回响应
|
||||
* @since Beta v0.9.1
|
||||
*/
|
||||
type RefreshTokenResp = TGApp.Plugins.Hutao.Base.Resp<RefreshTokenRes>;
|
||||
|
||||
/**
|
||||
* 刷新Token返回
|
||||
* @since Beta v0.9.1
|
||||
*/
|
||||
type RefreshTokenRes = LoginRes;
|
||||
|
||||
/**
|
||||
* 信息返回响应
|
||||
* @since Beta v0.9.1
|
||||
*/
|
||||
type InfoResp = TGApp.Plugins.Hutao.Base.Resp<InfoRes>;
|
||||
|
||||
/**
|
||||
* 信息返回
|
||||
* @since Beta v0.9.1
|
||||
*/
|
||||
type InfoRes = {
|
||||
/**
|
||||
* CDN 过期时间
|
||||
* @example 2025-09-18T01:01:39+00:00
|
||||
*/
|
||||
CdnExpireAt: string;
|
||||
/**
|
||||
* 胡桃云祈愿过期时间
|
||||
* @remarks 与 CDN 过期时间格式一致
|
||||
*/
|
||||
GachaLogExpireAt: string;
|
||||
/** 是否是开发者 */
|
||||
IsLicenseDeveloper: boolean;
|
||||
/** 是否是主开发 */
|
||||
IsMaintainer: boolean;
|
||||
/** 常规用户名 */
|
||||
NormalizedUserName: string;
|
||||
/** 用户名 */
|
||||
UserName: string;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user