koishi-plugin-kbot
Version:
A muti-function qq bot for koishi
88 lines (87 loc) • 3.15 kB
TypeScript
import type { Quester } from 'koishi';
export default class Auth {
private static readonly RIOT_CLIENT_USER_AGENT;
private _http;
private _headers;
private user_agent;
constructor(http: Quester);
static _extract_tokens(data: Record<string, any>): {
access_token: string;
id_token: string;
expires_in: string;
};
static _extract_tokens_from_url(url: string): string[];
/**
* 用于认证用户的函数
* @param username 要认证的用户名
* @param password 要认证的密码
* @returns 如果认证成功, 则返回包含认证数据的字典, 包括 cookie, 访问令牌和令牌 ID.
* 如果认证需要 2FA, 则此函数返回一个包含 cookie 数据和提示用户输入 2FA 代码的消息的字典.
* 否则, 此函数返回 null.
*/
authenticate(username: string, password: string): Promise<Record<string, any>>;
/**
*
* @param accessToken 访问令牌
* @returns 返回对应的 jwt token
*/
getEntitlementsToken(accessToken: string): Promise<string>;
/**
* 用于获取用户信息的方法
* @param accessToken 访问令牌
* @returns 返回包含 puuid, name, tag 的数组
*/
getUserInfo(accessToken: string): Promise<string[]>;
/**
* 用于获取区域的方法
* @param accessToken 访问令牌
* @param idToken 令牌 ID
* @returns 区域的字符串
*/
getRegion(accessToken: string, idToken: string): Promise<string>;
/**
* 用于输入 2fa 验证码的方法
* @param code 2fa 验证码
* @param cookies cookie 字符串
* @returns 身份信息的对象
*/
get2faCode(code: string, cookies: string): Promise<Record<string, any>>;
/**
* 用于兑换新的 cookie 的方法
* @param cookies cookie 字符串
* @returns 数组,包含兑换后的 cookie 和 access_token 和 entitlements_token
*/
redeemCookies(cookies: string): Promise<string[]>;
/**
* 临时登录, 返回用户信息
* @param username 用户名
* @param password 密码
* @returns 返回玩家信息对象, 包含 puuid, playerName, region, headers
*/
tempAuth(username: string, password: string): Promise<{
puuid: string;
playerName: string;
region: string;
headers: {
'Content-Type': string;
'X-Riot-Entitlements-JWT': string;
Authorization: string;
};
}>;
/**
* 使用 cookie 登录并返回包含访问令牌, 令牌 ID 和资格令牌的字典
* @param cookies cookie 字符串
* @returns 包含访问令牌, 令牌 ID, 资格令牌和 cookie 等字段的对象
*/
loginWithCookies(cookies: string): Promise<{
cookies: string;
accessToken: string;
idToken: string;
}>;
/**
* 刷新 cookie
* @param refreshToken 需要刷新的 refresh_token
* @returns 数组,包含兑换后的 cookie 和 access_token 和 entitlements_token
*/
refreshToken(refreshToken: string): Promise<string[]>;
}