From 1afdbd0bc6ce3614cfb4645767db4fd98eb43639 Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Fri, 18 Nov 2022 20:01:58 +0800 Subject: [PATCH] fix: wrong cookie in fetcher --- deps.ts | 1 + src/env.ts | 10 ++++++---- src/iksm.ts | 9 +++++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/deps.ts b/deps.ts index cfa84c6..dd03979 100644 --- a/deps.ts +++ b/deps.ts @@ -3,6 +3,7 @@ export { CookieJar, wrapFetch, } from "https://deno.land/x/another_cookiejar@v4.1.4/mod.ts"; +export type { CookieOptions } from "https://deno.land/x/another_cookiejar@v4.1.4/mod.ts"; export * as base64 from "https://deno.land/std@0.160.0/encoding/base64.ts"; export * as flags from "https://deno.land/std@0.160.0/flags/mod.ts"; export * as io from "https://deno.land/std@0.160.0/io/mod.ts"; diff --git a/src/env.ts b/src/env.ts index 84d17ed..354048b 100644 --- a/src/env.ts +++ b/src/env.ts @@ -1,4 +1,4 @@ -import { CookieJar, wrapFetch } from "../deps.ts"; +import { CookieJar, CookieOptions, wrapFetch } from "../deps.ts"; import { io } from "../deps.ts"; const stdinLines = io.readLines(Deno.stdin); @@ -30,7 +30,7 @@ export type Logger = { export type Env = { logger: Logger; readline: () => Promise; - newFetcher: () => Fetcher; + newFetcher: (opts?: { cookies?: CookieOptions[] }) => Fetcher; }; export const DEFAULT_ENV: Env = { @@ -41,8 +41,8 @@ export const DEFAULT_ENV: Env = { error: console.error, }, readline, - newFetcher: () => { - const cookieJar = new CookieJar(); + newFetcher: ({ cookies } = {}) => { + const cookieJar = new CookieJar(cookies); const fetch = wrapFetch({ cookieJar }); return { @@ -62,3 +62,5 @@ export const DEFAULT_ENV: Env = { }; }, }; + +export type { CookieOptions }; diff --git a/src/iksm.ts b/src/iksm.ts index cb66932..f2cf282 100644 --- a/src/iksm.ts +++ b/src/iksm.ts @@ -243,7 +243,13 @@ export async function getBulletToken( env: Env; }, ) { - const { post } = env.newFetcher(); + const { post } = env.newFetcher({ + cookies: [{ + name: "_gtoken", + value: webServiceToken, + domain: "api.lp1.av5ja.srv.nintendo.net", + }], + }); const resp = await post({ url: "https://api.lp1.av5ja.srv.nintendo.net/api/bullet_tokens", headers: { @@ -255,7 +261,6 @@ export async function getBulletToken( "Accept": "*/*", "Origin": "https://api.lp1.av5ja.srv.nintendo.net", "X-Requested-With": "com.nintendo.znca", - "Cookie": `_gtoken=${webServiceToken}`, }, });