UNPKG

@vaadin/hilla-frontend

Version:

Hilla core frontend utils

71 lines (70 loc) 2.22 kB
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>; }