UNPKG

@toruslabs/customauth

Version:

CustomAuth login with torus to get user private key

69 lines (65 loc) 2.47 kB
'use strict'; var enums = require('../utils/enums.js'); var DiscordHandler = require('./DiscordHandler.js'); var FacebookHandler = require('./FacebookHandler.js'); var GoogleHandler = require('./GoogleHandler.js'); var JwtHandler = require('./JwtHandler.js'); var MockLoginHandler = require('./MockLoginHandler.js'); var PasskeysHandler = require('./PasskeysHandler.js'); var TelegramHandler = require('./TelegramHandler.js'); var TwitchHandler = require('./TwitchHandler.js'); var Web3AuthPasswordlessHandler = require('./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 enums.AUTH_CONNECTION.GOOGLE: return new GoogleHandler(params); case enums.AUTH_CONNECTION.TELEGRAM: return new TelegramHandler(params); case enums.AUTH_CONNECTION.FACEBOOK: return new FacebookHandler(params); case enums.AUTH_CONNECTION.TWITCH: return new TwitchHandler(params); case enums.AUTH_CONNECTION.DISCORD: return new DiscordHandler(params); case enums.AUTH_CONNECTION.EMAIL_PASSWORDLESS: case enums.AUTH_CONNECTION.SMS_PASSWORDLESS: if (!login_hint) throw new Error("Invalid params. Missing login_hint for web3auth passwordless login"); return new Web3AuthPasswordlessHandler(params); case enums.AUTH_CONNECTION.APPLE: case enums.AUTH_CONNECTION.GITHUB: case enums.AUTH_CONNECTION.LINKEDIN: case enums.AUTH_CONNECTION.TWITTER: case enums.AUTH_CONNECTION.LINE: case enums.AUTH_CONNECTION.CUSTOM: case enums.AUTH_CONNECTION.REDDIT: case enums.AUTH_CONNECTION.WECHAT: case enums.AUTH_CONNECTION.KAKAO: case enums.AUTH_CONNECTION.FARCASTER: case enums.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 enums.AUTH_CONNECTION.PASSKEYS: return new PasskeysHandler(params); default: throw new Error("Unsupported login type"); } }; exports.createHandler = createHandler;