UNPKG

passport-twitch-strategy

Version:

Twitch (OAuth) authentication strategies for Passport. v5

69 lines (68 loc) 2.46 kB
import OAuth2Strategy from "passport-oauth2"; interface Options { clientID: string; clientSecret: string; callbackURL: string; scope: string; } export declare class Strategy extends OAuth2Strategy { private clientID; name: string; /** * `Strategy` constructor. * * The Twitch authentication strategy authenticates requests by delegating to * Twitch using the OAuth 2.0 protocol. * * Applications must supply a `verify` callback which accepts an `accessToken`, * `refreshToken` and service-specific `profile`, and then calls the `done` * callback supplying a `user`, which should be set to `false` if the * credentials are not valid. If an exception occured, `err` should be set. * * Options: * - `clientID` your Twitch application"s client id * - `clientSecret` your Twitch application"s client secret * - `callbackURL` URL to which Twitch will redirect the user after granting authorization * * Examples: * * passport.use(new TwitchStrategy({ * clientID: "123-456-789", * clientSecret: "shhh-its-a-secret" * callbackURL: "https://www.example.net/auth/twitch/callback" * }, * function(accessToken, refreshToken, profile, done) { * User.findOrCreate(..., function (err, user) { * done(err, user); * }); * } * )); * * @param {Options} options * @param {Function} verify */ constructor(options: Options, verify: Function); /** * Retrieve user profile from Twitch. * This function constructs a normalized profile, with the following properties: * - `provider` always set to `twitch` * - `id` * - `login` * - `displayName` * @param {String} accessToken * @param {Function} done * @api protected */ userProfile(accessToken: string, done: (err?: Error | null, profile?: any) => void): Promise<void>; authenticate(req: any, args?: any): void; /** * Return extra parameters to be included in the authorization request. * @param {{ forceVerify?: boolean }} options * @return {Object} * @api protected */ authorizationParams(options: { forceVerify?: boolean; }): object; } export default Strategy;