UNPKG

@slack/oauth

Version:

Official library for interacting with Slack's Oauth endpoints

37 lines 1.57 kB
import type { InstallURLOptions } from '../install-url-options'; /** * The data structure represented by the state parameter. */ export interface StateObj { /** * The timestamp that the state object was generated. */ now: Date; /** * The passed InstallURLOptions object when generating this state parameter. */ installOptions: InstallURLOptions; random?: string | number; } /** * Generates state parameter value in the OAuth flow. * While the state parameter value works for the CSRF protection purpose, * it can transfer the given InstallURLOptions value to the Redirect URL handler * (Redirect URL: the default path is "/slack/oauth_redirect") */ export interface StateStore { /** * Generates a valid state parameter value, which can be decoded as a StateObj object * by the verifyStateParam() method. This value may be stored on the server-side with expiration. * The InstallProvider verifies if this value is set in the installer's browser session. */ generateStateParam: (installOptions: InstallURLOptions, now: Date) => Promise<string>; /** * Verifies the given state string value by trying to decode the value and * build the passed InstallURLOptions object from the data. * This method verifies if the state value is not too old to detect replay attacks. * If the value is invalid, this method can throw InvalidStateError exception. */ verifyStateParam: (now: Date, state: string) => Promise<InstallURLOptions>; } //# sourceMappingURL=interface.d.ts.map