Files
SnowCatQQ/packages/snowcat-core/services/NodeIKernelLoginService.ts
T
天天的鸟蛋蛋 b9655a5ab1 SnowCat 雪猫底层全源码:NapCat 4.18.28 底座 + SnowLuma 能力移植 + V8 通道适配 9.9.37
26 包 monorepo(TS 全源码):
- snowcat-core: NT 内核 API 封装 + listener(含 9.9.37 六回调适配)+ Packet 发包
- snowcat-onebot: OneBot v11 全动作 + MCP Streamable HTTP 适配器 + 稳定线
- snowcat-webui-frontend/backend: 雪猫控制台(React+HeroUI)
- snowcat-shell: 单文件 bundle 出口(vite inlineDynamicImports)
- snowcat-native: napi2native / MoeHoo / ffmpeg / pty 运行时
- 56 项 SnowLuma 独门动作移植(qzone 全家桶/群相册/装扮/闪照/收藏)
- 工具件: 解包器/启动器/便携制作器/doctor

GitHub 关联已全量指向 DandanLLab/SnowCatQQ
2026-11-12 06:27:36 +08:00

122 lines
2.7 KiB
TypeScript

import { NodeIKernelLoginListener } from '@/snowcat-core/listeners/NodeIKernelLoginListener';
import { GeneralCallResult } from './common';
export interface LoginInitConfig {
machineId: '';
appid: string;
platVer: string;
commonPath: string;
clientVer: string;
hostName: string;
externalVersion: boolean;
}
export interface PasswordLoginRetType {
result: string,
loginErrorInfo: {
step: number;
errMsg: string;
proofWaterUrl: string;
newDevicePullQrCodeSig: string;
jumpUrl: string,
jumpWord: string;
tipsTitle: string;
tipsContent: string;
};
}
export interface PasswordLoginArgType {
uin: string;
passwordMd5: string;// passwMD5
step: number;// 猜测是需要二次认证 参数 一次为0
newDeviceLoginSig: Uint8Array;
proofWaterSig: Uint8Array;
proofWaterRand: Uint8Array;
proofWaterSid: Uint8Array;
unusualDeviceCheckSig: Uint8Array;
}
export interface LoginListItem {
uin: string;
uid: string;
nickName: string;
faceUrl: string;
facePath: string;
loginType: 1; // 1是二维码登录?
isQuickLogin: boolean; // 是否可以快速登录
isAutoLogin: boolean; // 是否可以自动登录
}
export interface QuickLoginResult {
result: string;
loginErrorInfo: {
step: number,
errMsg: string,
proofWaterUrl: string,
newDevicePullQrCodeSig: string,
jumpUrl: string,
jumpWord: string,
tipsTitle: string,
tipsContent: string;
};
}
export interface NodeIKernelLoginService {
getMsfStatus: () => number;
setLoginMiscData (key: string, value: string): unknown;
getLoginMiscData (key: string): Promise<GeneralCallResult & { value: string; }>;
getMachineGuid (): string;
get (): NodeIKernelLoginService;
connect (): boolean;
addKernelLoginListener (listener: NodeIKernelLoginListener): number;
removeKernelLoginListener (listenerId: number): void;
initConfig (config: LoginInitConfig): void;
getLoginList (): Promise<{
result: number,
LocalLoginInfoList: LoginListItem[];
}>;
quickLoginWithUin (uin: string): Promise<QuickLoginResult>;
passwordLogin (param: PasswordLoginArgType): Promise<QuickLoginResult>;
getQRCodePicture (): boolean;
destroy (): unknown;
cancel (): unknown;
abortPolling (): unknown;
startPolling (): unknown;
deleteLoginInfo (arg: unknown): unknown;
isHasLoginInfo (uin: string): boolean;
loadNoLoginUnitedConfig (arg: unknown): unknown;
loginUnusualDevice (arg: unknown): unknown;
registerUnitedConfigPushGroupList (groupList: unknown): unknown;
resetLoginInfo (arg: unknown): unknown;
setAutoLogin (arg: unknown): unknown;
setRemerberPwd (remember: boolean): unknown;
online (): unknown;
offline (): unknown;
}