@stackend/api
Version:
JS bindings to api.stackend.com
137 lines • 3.9 kB
TypeScript
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