@lucasroll62/nuxt3-auth
Version:
An alternative module to @nuxtjs/auth
58 lines (57 loc) • 2.55 kB
TypeScript
import type { HTTPRequest, HTTPResponse, Scheme, SchemeCheck, TokenableScheme, RefreshableScheme, ModuleOptions, Route } from '../../types';
import type { NuxtApp } from '#app';
import { Storage } from './storage';
export type ErrorListener = (...args: any[]) => void;
export type RedirectListener = (to: string, from: string) => string;
export declare class Auth {
#private;
ctx: NuxtApp;
options: ModuleOptions;
strategies: Record<string, Scheme>;
$storage: Storage;
$state: {
strategy: string;
user: Record<string, any>;
loggedIn: boolean;
};
error?: Error;
constructor(ctx: NuxtApp, options: ModuleOptions);
getStrategy(throwException?: boolean): Scheme;
get tokenStrategy(): TokenableScheme;
get refreshStrategy(): RefreshableScheme;
get strategy(): Scheme;
get user(): Record<string, any> | null;
get loggedIn(): boolean;
get busy(): boolean;
init(): Promise<void>;
registerStrategy(name: string, strategy: Scheme): void;
setStrategy(name: string): Promise<HTTPResponse | void>;
mounted(...args: any[]): Promise<HTTPResponse | void>;
loginWith(name: string, ...args: any[]): Promise<HTTPResponse | void>;
login(...args: any[]): Promise<HTTPResponse | void>;
fetchUser(...args: any[]): Promise<HTTPResponse | void>;
logout(...args: any[]): Promise<void>;
setUserToken(token: string | boolean, refreshToken?: string | boolean): Promise<HTTPResponse | void>;
reset(...args: any[]): void;
refreshTokens(): Promise<HTTPResponse | void>;
check(...args: any[]): SchemeCheck;
fetchUserOnce(...args: any[]): Promise<HTTPResponse | void>;
setUser(user: any): void;
request(endpoint: HTTPRequest, defaults?: HTTPRequest): Promise<HTTPResponse | void>;
requestWith(endpoint?: HTTPRequest, defaults?: HTTPRequest): Promise<HTTPResponse | void>;
wrapLogin(promise: Promise<HTTPResponse | void>): Promise<HTTPResponse | void>;
onError(listener: ErrorListener): void;
callOnError(error: Error, payload?: {}): void;
/**
*
* @param name redirect name
* @param route (default: false) Internal useRoute() (false) or manually specify
* @param router (default: true) Whether to use nuxt redirect (true) or window redirect (false)
*
* @returns
*/
redirect(name: string, route?: Route | false, router?: boolean): void;
onRedirect(listener: RedirectListener): void;
callOnRedirect(to: string, from: string): string;
hasScope(scope: string): boolean;
}