@vaadin/hilla-frontend
Version:
Hilla core frontend utils
71 lines (70 loc) • 2.22 kB
TypeScript
import type { MiddlewareClass, MiddlewareContext, MiddlewareNext } from "./Connect.js";
export interface LoginResult {
error: boolean;
token?: string;
errorTitle?: string;
errorMessage?: string;
redirectUrl?: string;
defaultUrl?: string;
}
export type SuccessCallback = () => Promise<void> | void;
export type NavigateFunction = (path: string) => void;
export interface LoginOptions {
/**
* The URL for login request, defaults to `/login`.
*/
loginProcessingUrl?: URL | string;
/**
* The success callback.
*/
onSuccess?: SuccessCallback;
/**
* The navigation callback, called after successful login. The default
* reloads the page.
*/
navigate?: NavigateFunction;
}
export interface LogoutOptions {
/**
* The URL for logout request, defaults to `/logout`.
*/
logoutUrl?: URL | string;
/**
* The success callback.
*/
onSuccess?: SuccessCallback;
/**
* The navigation callback, called after successful logout. The default
* reloads the page.
*/
navigate?: NavigateFunction;
}
/**
* A helper method for Spring Security based form login.
* @param username - username
* @param password - password
* @param options - defines additional options, e.g, the loginProcessingUrl etc.
*/
export declare function login(username: string, password: string, options?: LoginOptions): Promise<LoginResult>;
/**
* A helper method for Spring Security based form logout
* @param options - defines additional options, e.g, the logoutUrl.
*/
export declare function logout(options?: LogoutOptions): Promise<void>;
/**
* It defines what to do when it detects a session is invalid. E.g.,
* show a login view.
* It takes an <code>EndpointCallContinue</code> parameter, which can be
* used to continue the endpoint call.
*/
export type OnInvalidSessionCallback = () => Promise<LoginResult>;
/**
* A helper class for handling invalid sessions during an endpoint call.
* E.g., you can use this to show user a login page when the session has
* expired.
*/
export declare class InvalidSessionMiddleware implements MiddlewareClass {
private readonly onInvalidSessionCallback;
constructor(onInvalidSessionCallback: OnInvalidSessionCallback);
invoke(context: MiddlewareContext, next: MiddlewareNext): Promise<Response>;
}