From 2ea88f8a58d67d98ea30d9f1552ad5956e6e4a74 Mon Sep 17 00:00:00 2001 From: BTMuli Date: Tue, 18 Apr 2023 00:52:06 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=94=20add(request):=20=E5=8D=A0?= =?UTF-8?q?=E5=9D=91=EF=BC=8C=E7=AD=89=E6=9C=89=E6=95=B0=E6=8D=AE=E4=BA=86?= =?UTF-8?q?=E5=86=8D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/api/TGApi.ts | 4 +++- src/core/api/Takumi.ts | 11 +++++++++++ src/core/request/getTokens.ts | 22 ++++++++++++++++++++++ src/core/utils/getRequestHeader.ts | 18 ++++++++++++++++++ 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 src/core/api/Takumi.ts create mode 100644 src/core/request/getTokens.ts create mode 100644 src/core/utils/getRequestHeader.ts diff --git a/src/core/api/TGApi.ts b/src/core/api/TGApi.ts index 31d3e332..bbdc84c1 100644 --- a/src/core/api/TGApi.ts +++ b/src/core/api/TGApi.ts @@ -2,16 +2,18 @@ * @file core api TGApi.ts * @description 应用用到的 API * @author BTMuli - * @since Alpha v0.1.2 + * @since Alpha v0.1.3 */ import { Hk4eAnnoListApi, Hk4eAnnoContentApi, Hk4eAnnoQuery } from "./Hk4e"; +import { TakumiTokensApi } from "./Takumi"; // 应用 API const TGApi = { GameAnnoList: Hk4eAnnoListApi, // 游戏公告 API GameAnnoContent: Hk4eAnnoContentApi, // 游戏公告内容 API GameAnnoQuery: Hk4eAnnoQuery, // 游戏公告 Query + GameTokens: TakumiTokensApi, // 游戏 Token API }; export default TGApi; diff --git a/src/core/api/Takumi.ts b/src/core/api/Takumi.ts new file mode 100644 index 00000000..e64d4316 --- /dev/null +++ b/src/core/api/Takumi.ts @@ -0,0 +1,11 @@ +/** + * @file core api Takumi.ts + * @description 定义 Takumi API + * @see https://gitee.com/ultradream/Genshin-Tools + * @author BTMuli + * @since Alpha v0.1.3 + */ + +const TakumiApi = "https://api-takumi.mihoyo.com/"; // 基础 API +const TaukumiAuthApi = `${TakumiApi}auth/api/`; // 认证 API +export const TakumiTokensApi = `${TaukumiAuthApi}getMultiTokenByLoginTicket`; // 登录票据 API diff --git a/src/core/request/getTokens.ts b/src/core/request/getTokens.ts new file mode 100644 index 00000000..a6daa2ec --- /dev/null +++ b/src/core/request/getTokens.ts @@ -0,0 +1,22 @@ +/** + * @file core request getTokens.ts + * @description 获取游戏 Token + * @author BTMuli + * @since Alpha v0.1.3 + */ + +import { http } from "@tauri-apps/api"; +import TGApi from "../api/TGApi"; +import { getRequestHeader } from "../utils/getRequestHeader"; + +export async function getTokens (cookie: Record): Promise { + const url = `${TGApi.GameTokens}?login_ticket=${cookie.login_ticket}&token_types=3&uid=${cookie.login_uid}`; + const header = getRequestHeader(cookie); + return await http.fetch(url, { + method: "GET", + headers: header, + }).then((res) => { + console.log(res.data); + return res.data; + }); +} diff --git a/src/core/utils/getRequestHeader.ts b/src/core/utils/getRequestHeader.ts new file mode 100644 index 00000000..8bf3d87a --- /dev/null +++ b/src/core/utils/getRequestHeader.ts @@ -0,0 +1,18 @@ +/** + * @file core utils getRequestHeader.ts + * @description 获取请求头 + * @author BTMuli + * @since Alpha v0.1.3 + */ + +export function getRequestHeader (cookie: Record): Record { + const header = { + "User-Agent": "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.34 Tauri.Genshin/0.1.2", + "x-rpc-app_version": "2.0.0", + "x-rpc-client_type": "5", + "x-rpc-device_id": cookie.DEVICEFP, + Origin: "https://www.miyoushe.com", + Referer: "https://www.miyoushe.com", + }; + return header; +}