diff --git a/src/core/request/TGRequest.ts b/src/core/request/TGRequest.ts index 5c6f399f..b281f6a3 100644 --- a/src/core/request/TGRequest.ts +++ b/src/core/request/TGRequest.ts @@ -7,6 +7,7 @@ import { getAnnoList, getAnnoContent } from "./getAnno"; import { getTokensByLoginTicket, getLtokenByStoken, getCookieTokenByStoken, vetifyStoken } from "./getTokens"; +import { getGameCard } from "./getGameData"; const TGRequest = { Anno: { @@ -18,6 +19,7 @@ const TGRequest = { getLToken: getLtokenByStoken, getCookieToken: getCookieTokenByStoken, vetifyStoken, + getGameCard, }, }; diff --git a/src/core/request/getGameData.ts b/src/core/request/getGameData.ts new file mode 100644 index 00000000..a9b4519e --- /dev/null +++ b/src/core/request/getGameData.ts @@ -0,0 +1,34 @@ +/** + * @file core utils getGameData.ts + * @description 获取游戏数据的函数 + * @author BTMuli + * @since Alpha v0.2.0 + */ + +// tauri +import { http } from "@tauri-apps/api"; +// utils +import TGApi from "../api/TGApi"; +import { getDS } from "../utils/getDS"; +import { getRequestHeader } from "../utils/getRequestHeader"; + +/** + * @description 获取用户游戏数据 + * @param {BTMuli.User.Base.Cookie} cookie 用户的 Cookie + * @returns {Promise} 用户基本信息 + */ +export async function getGameCard (cookie: BTMuli.User.Base.Cookie): Promise { + const url = TGApi.GameData.getUserCard; + const header = { + ...getRequestHeader(cookie), + cookie: JSON.stringify(cookie), + DS: getDS(`uid=${cookie.login_uid}`, ""), + }; + return await http.fetch(url, { + method: "GET", + headers: header, + }).then((res) => { + console.log(res.data); + return res.data; + }); +} diff --git a/src/core/request/getTokens.ts b/src/core/request/getTokens.ts index ebe74318..c774a129 100644 --- a/src/core/request/getTokens.ts +++ b/src/core/request/getTokens.ts @@ -10,7 +10,7 @@ import { http } from "@tauri-apps/api"; // api import TGApi from "../api/TGApi"; // utils -import { getRequestHeader } from "../utils/getRequestHeader"; +import TGUtils from "../utils/TGUtils"; /** * @description 根据 login_ticket 获取游戏 Token,包括 stoken 和 ltoken @@ -20,7 +20,7 @@ import { getRequestHeader } from "../utils/getRequestHeader"; */ export async function getTokensByLoginTicket (cookie: BTMuli.User.Base.Cookie): Promise { const url = `${TGApi.GameTokens.getTokens}?login_ticket=${cookie.login_ticket}&token_types=3&uid=${cookie.login_uid}`; - const header = getRequestHeader(cookie); + const header = TGUtils.User.getHeader(cookie); return await http.fetch(url, { method: "GET", headers: header, @@ -38,11 +38,18 @@ export async function getTokensByLoginTicket (cookie: BTMuli.User.Base.Cookie): * @returns {Promise} */ export async function getLtokenByStoken (cookie: BTMuli.User.Base.Cookie, stoken: string): Promise { - const url = `${TGApi.GameTokens.getLToken}?stoken=${stoken}`; - const header = getRequestHeader(cookie); + const url = `${TGApi.GameTokens.getLToken}`; + const header = TGUtils.User.getHeader(cookie); + const ds = TGUtils.User.getDS(`stoken=${stoken}`, ""); + console.log("DS:", ds); + console.log("Cookie:", JSON.stringify(cookie)); return await http.fetch(url, { - method: "GET", - headers: header, + method: "POST", + headers: { + ...header, + cookie: JSON.stringify(cookie), + DS: `${ds}`, + }, }).then((res) => { console.log(res.data); if (res.data.retcode !== 0) return res.data; @@ -58,7 +65,7 @@ export async function getLtokenByStoken (cookie: BTMuli.User.Base.Cookie, stoken */ export async function getCookieTokenByStoken (cookie: BTMuli.User.Base.Cookie, stoken: string): Promise { const url = `${TGApi.GameTokens.getCookieToken}?stoken=${stoken}`; - const header = getRequestHeader(cookie); + const header = TGUtils.User.getHeader(cookie); return await http.fetch(url, { method: "GET", headers: header, @@ -76,11 +83,14 @@ export async function getCookieTokenByStoken (cookie: BTMuli.User.Base.Cookie, s * @returns {Promise} */ export async function vetifyStoken (cookie: BTMuli.User.Base.Cookie, stoken: string): Promise { - const url = `${TGApi.GameTokens.vetifyStoken}?stoken=${stoken}`; - const header = getRequestHeader(cookie); + const url = `${TGApi.GameTokens.vetifyStoken}`; + const header = TGUtils.User.getHeader(cookie); return await http.fetch(url, { - method: "GET", + method: "POST", headers: header, + body: http.Body.json({ + stoken, + }), }).then((res) => { console.log(res.data); if (res.data.retcode !== 0) return res.data; diff --git a/src/core/utils/TGUtils.ts b/src/core/utils/TGUtils.ts index 429cd091..baf7da61 100644 --- a/src/core/utils/TGUtils.ts +++ b/src/core/utils/TGUtils.ts @@ -8,6 +8,7 @@ import { parseAnnoContent } from "./parseAnno"; import { getAnnoCard } from "./getAnnoCard"; import { getDS } from "./getDS"; +import { getRequestHeader } from "./getRequestHeader"; const TGUtils = { Anno: { @@ -16,6 +17,7 @@ const TGUtils = { }, User: { getDS, + getHeader: getRequestHeader, }, }; diff --git a/src/pages/User.vue b/src/pages/User.vue index 71ab6174..620f733e 100644 --- a/src/pages/User.vue +++ b/src/pages/User.vue @@ -7,6 +7,15 @@ 保存 Token 到数据库 + + 验证 stoken + + + 获取 ltoken + + + 获取游戏数据 +