@toruslabs/customauth
Version:
CustomAuth login with torus to get user private key
69 lines (65 loc) • 2.47 kB
JavaScript
;
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;