UNPKG

@toruslabs/customauth

Version:

CustomAuth login with torus to get user private key

67 lines (64 loc) 2.32 kB
import { AUTH_CONNECTION } from '../utils/enums.js'; import DiscordHandler from './DiscordHandler.js'; import FacebookHandler from './FacebookHandler.js'; import GoogleHandler from './GoogleHandler.js'; import JwtHandler from './JwtHandler.js'; import MockLoginHandler from './MockLoginHandler.js'; import PasskeysHandler from './PasskeysHandler.js'; import TelegramHandler from './TelegramHandler.js'; import TwitchHandler from './TwitchHandler.js'; import Web3AuthPasswordlessHandler from './Web3AuthPasswordlessHandler.js'; const createHandler = params => { const { authConnectionId, authConnection, clientId, jwtParams } = params; if (!authConnectionId || !authConnection || !clientId) { throw new Error("Invalid params. Missing authConnectionId, authConnection or clientId"); } const { domain, login_hint, id_token, access_token } = jwtParams || {}; switch (authConnection) { case AUTH_CONNECTION.GOOGLE: return new GoogleHandler(params); case AUTH_CONNECTION.TELEGRAM: return new TelegramHandler(params); case AUTH_CONNECTION.FACEBOOK: return new FacebookHandler(params); case AUTH_CONNECTION.TWITCH: return new TwitchHandler(params); case AUTH_CONNECTION.DISCORD: return new DiscordHandler(params); case AUTH_CONNECTION.EMAIL_PASSWORDLESS: case AUTH_CONNECTION.SMS_PASSWORDLESS: if (!login_hint) throw new Error("Invalid params. Missing login_hint for web3auth passwordless login"); return new Web3AuthPasswordlessHandler(params); case AUTH_CONNECTION.APPLE: case AUTH_CONNECTION.GITHUB: case AUTH_CONNECTION.LINKEDIN: case AUTH_CONNECTION.TWITTER: case AUTH_CONNECTION.LINE: case AUTH_CONNECTION.CUSTOM: case AUTH_CONNECTION.REDDIT: case AUTH_CONNECTION.WECHAT: case AUTH_CONNECTION.KAKAO: case AUTH_CONNECTION.FARCASTER: case AUTH_CONNECTION.AUTHENTICATOR: if (id_token || access_token) { return new MockLoginHandler(params); } if (!domain) throw new Error("Invalid params for jwt login. Missing domain"); return new JwtHandler(params); case AUTH_CONNECTION.PASSKEYS: return new PasskeysHandler(params); default: throw new Error("Unsupported login type"); } }; export { createHandler };