UNPKG

@stackend/api

Version:

JS bindings to api.stackend.com

137 lines 3.9 kB
import { Request } from '../request'; import { XcapJsonResult, Config, Thunk, XcapOptionalParameters } from '../api'; /** * Ways to log in. */ export declare enum AuthenticationType { /** * Login using facebook */ FACEBOOK = "FACEBOOK", /** * Login using email+password */ XCAP = "XCAP", /** * Login using google token */ GOOGLE = "GOOGLE", /** * Custom oauth solution */ OAUTH2 = "OAUTH2" } export declare function getAuthenticationTypeName(type: AuthenticationType): string; /** * Given a user permalink, get the authentication type * @param permalink * @returns {string} */ export declare function getAuthenticationTypeByUserPermalink(permalink: string): AuthenticationType; /** * Get the login url. * * @param config * @param request * @param returnUrl * @param communityPermalink * @param provider * @returns string */ export declare function _getLoginUrl({ config, request, returnUrl, communityPermalink, provider }: { config: Config; request?: Request | null; returnUrl?: string | null; communityPermalink?: string | null; provider: AuthenticationType; }): string; /** * Get the logout url. * @param config * @param request * @param returnUrl * @returns {string} * @deprecated Should not link directly to logout. It requires a post with a token. */ export declare function _getLogoutUrl({ config, request, returnUrl }: { config: Config; request: Request; returnUrl?: string; }): string; /** * Logout * @param redirectUrl * @returns {Thunk<XcapJsonResult>} */ export declare function logout({ redirectUrl }: { redirectUrl?: string | null; } & XcapOptionalParameters): Thunk<Promise<XcapJsonResult>>; export interface LoginResult extends XcapJsonResult { loginFailed: boolean; redirectUrl: string; email?: string | null; firstName?: string | null; lastName?: string | null; provider?: string | null; } /** * Login. * This will redirect the user to the provider specific login url. * Client side only! * Some login providers may have extra parameters. * The email provider requires email and password to be supplied. */ export declare function login(props: { provider: AuthenticationType; email?: string; password?: string; returnUrl?: string; config: Config; request: Request; } & XcapOptionalParameters): Thunk<Promise<XcapJsonResult> | string>; /** * Handle the redirects when logging in. * @param loginResult Response from the login or verifyEmail method. * @param request * @param email * @param returnUrl * @returns {boolean} */ export declare function performLoginRedirect({ loginResult, request, email, returnUrl }: { loginResult: LoginResult; request: Request; email?: string; returnUrl?: string; }): boolean; /** * Send a token to the email address that will allow the user to change password. * @param email */ export declare function sendPasswordChangeToken({ email }: { email: string; }): Thunk<Promise<XcapJsonResult>>; export interface ChangePasswordResult extends XcapJsonResult { returnUrl: string | null; } /** * Change password. * * This method has two ways of operation: * * - When not logged in, supply a code to change the password * - When logged in, supply the old password * * @param email User email adress * @param checkCode Verification code (optional) * @param oldPassword Old password as verification (optional) * @param password The new password * @param returnUrl The url to return to when the password is changed */ export declare function changePassword({ email, checkCode, oldPassword, password, returnUrl }: { email: string; checkCode?: string; oldPassword?: string; password: string; returnUrl?: string; } & XcapOptionalParameters): Thunk<Promise<ChangePasswordResult>>; //# sourceMappingURL=index.d.ts.map