passwordless
passwordless copied to clipboard
Typescript support
Hi, it would be great if you implemented typescript support 😄
I have a basic typescript definition file I'm using internally. I've been meaning to submit it to definitely typed:
/// <reference path="./passwordless-tokenstore.d.ts" />
declare module 'passwordless' {
import TokenStore from 'passwordless-tokenstore'
interface InitOptions {
userProperty?: string;
allowTokenReuse?: boolean;
skipForceSessionSave?: boolean;
}
interface AcceptTokenOptions {
successRedirect?: string;
tokenField?: string;
uidField?: string;
allowPost?: boolean;
failureFlash?: string;
successFlash?: string;
enableOriginRedirect?: boolean;
}
interface RestrictedMiddlewareOptions {
failureRedirect?: string;
failureFlash?: string;
originField?: string;
}
interface RequestTokenOpts extends RestrictedMiddlewareOptions {
successFlash?: string;
userField?: string;
deliveryField?: string;
allowGet?: boolean;
}
interface AddDeliveryOpts {
ttl?: number;
tokenAlgorithm?: () => any;
}
type RequestHandler = any;
type Request = any;
type LazyError = any;
type SendTokenFunction = (tokenToSend: string, uid: string, recipient: string, callback: (reason?: string) => void, req: Request) => void;
type GetUserIDFunction = (user: string, delivery: any, callback: (error?: LazyError, user?: any) => void, req: Request) => void;
export class Passwordless {
constructor();
init(tokenStore: TokenStore, options?: InitOptions): Passwordless;
acceptToken(options?: AcceptTokenOptions): RequestHandler;
/**
* Middleware that ensures user is authenticated.
*/
restricted(options: RestrictedMiddlewareOptions): RequestHandler;
addDelivery(name: string, sendToken?: SendTokenFunction, options?: AddDeliveryOpts): void;
addDelivery(sendToken: SendTokenFunction, options?: AddDeliveryOpts): void;
/**
* Logs out the current user and invalidates any tokens that are still valid for the user
*/
logout(options: {successFlash?: string}): RequestHandler;
/**
* Requests a token from Passwordless for a specific user and calls the delivery strategy
* to send the token to the user. Sends back a 401 error message if the user is not valid
* or a 400 error message if no user information has been transmitted at all. By default,
* POST params will be expected
*/
requestToken(getUserID: GetUserIDFunction, options?: RequestTokenOpts): RequestHandler;
sessionSupport(): RequestHandler;
}
var passwordless: Passwordless;
export default passwordless
}