UNPKG

@foal/social

Version:

Social authentication for FoalTS

38 lines (37 loc) 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TwitterProvider = void 0; // FoalTS const abstract_provider_service_1 = require("./abstract-provider.service"); const user_info_error_1 = require("./user-info.error"); /** * Twitter social provider. * * @export * @class TwitterProvider * @extends {AbstractProvider<TwitterAuthParameter, never>} */ class TwitterProvider extends abstract_provider_service_1.AbstractProvider { configPaths = { clientId: 'settings.social.twitter.clientId', clientSecret: 'settings.social.twitter.clientSecret', redirectUri: 'settings.social.twitter.redirectUri' }; authEndpoint = 'https://twitter.com/i/oauth2/authorize'; tokenEndpoint = 'https://api.twitter.com/2/oauth2/token'; userInfoEndpoint = 'https://api.twitter.com/2/users/me'; usePKCE = true; useAuthorizationHeaderForTokenEndpoint = true; defaultScopes = ['users.read', 'tweet.read']; async getUserInfoFromTokens(tokens) { const response = await fetch(this.userInfoEndpoint, { headers: { Authorization: `${tokens.token_type} ${tokens.access_token}` } }); const body = await response.json(); if (!response.ok) { throw new user_info_error_1.UserInfoError(body); } return body; } } exports.TwitterProvider = TwitterProvider;