cnpmcore
Version:
Private NPM Registry for Enterprise
57 lines (56 loc) • 2.24 kB
TypeScript
import '@eggjs/typebox-validate';
import { Type, type Static } from '@eggjs/typebox-validate/typebox';
import type { PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON } from '@simplewebauthn/typescript-types';
import { type EggContext, type EggAppConfig, type EggLogger } from 'egg';
import type { UserService } from '../../core/service/UserService.ts';
import { MiddlewareController } from '../middleware/index.ts';
declare const LoginRequestRule: Type.TObject<{
hostname: Type.TOptional<Type.TString>;
}>;
type LoginRequest = Static<typeof LoginRequestRule>;
interface LoginPrepareResult {
wanStatus: number;
wanCredentialRegiOption?: PublicKeyCredentialCreationOptionsJSON;
wanCredentialAuthOption?: PublicKeyCredentialRequestOptionsJSON;
}
interface LoginImplementRequest {
accData: {
username: string;
password: string;
};
wanCredentialRegiData: unknown;
wanCredentialAuthData: unknown;
needUnbindWan: boolean;
}
export declare class WebauthController extends MiddlewareController {
private cacheAdapter;
private authAdapter;
protected logger: EggLogger;
protected config: EggAppConfig;
protected userService: UserService;
login(ctx: EggContext, loginRequest: LoginRequest): Promise<import("../../common/typing.ts").AuthUrlResult>;
loginRender(ctx: EggContext, sessionId: string): Promise<"<h1>😭😭😭 Session not found, please try again on your command line 😭😭😭</h1>" | undefined>;
loginImplement(ctx: EggContext, sessionId: string, loginImplementRequest: LoginImplementRequest): Promise<{
ok: boolean;
message: string;
} | {
ok: boolean;
message?: undefined;
}>;
loginPrepare(ctx: EggContext, sessionId: string, name: string): Promise<LoginPrepareResult | {
ok: boolean;
message: string;
}>;
ssoRequest(ctx: EggContext, sessionId: string): Promise<{
success: boolean;
}>;
loginRequestSuccess(ctx: EggContext): Promise<string>;
loginDone(ctx: EggContext, sessionId: string): Promise<{
message: string;
token?: undefined;
} | {
token: string;
message?: undefined;
}>;
}
export {};