UNPKG

@xuda.io/xuda-widget-plugin-firebase-auth-ui

Version:

Xuda firebaseUI Authentication widget

106 lines (95 loc) 3.04 kB
export const beforeInit = async (e) => { // console.log("beforeInit"); }; export const initialized = async (e) => { // console.log("initialized"); }; export const beforeMounted = async (e) => { // console.log("beforeMounted"); }; export const mounted = async (e) => { // console.log("mounted"); }; export const systemReady = async (e) => { // console.log("systemReady"); }; export async function _default(fields, e) { // console.log("_default"); if (!fields.event_name_for_successful_callback) { return await e.report_error("Successful Callback must be defined"); } if (func.utils.get_device()) { return; } await func.utils.load_js_on_demand( "https://www.gstatic.com/firebasejs/ui/6.0.2/firebase-ui-auth.js" ); await func.utils.load_css_on_demand( "https://www.gstatic.com/firebasejs/ui/6.0.2/firebase-ui-auth.css" ); // FirebaseUI config. var uiConfig = { callbacks: { // signInSuccess: () => false, signInSuccessWithAuthResult: function (authResult, redirectUrl) { const res = async () => { await e.set_SYS_GLOBAL_OBJ_WIDGET_INFO(authResult); if (fields.field_id_to_return_result) { await e.api_utils.set_field_value( fields.field_id_to_return_result, authResult ); } if (fields.event_name_for_successful_callback) { await e.api_utils.invoke_event( fields.event_name_for_successful_callback ); } }; res(); }, }, signInOptions: [], privacyPolicyUrl: function () { window.location.assign(fields.privacy_policy_url || ""); }, }; if (fields.popup) { uiConfig.signInFlow = "popup"; } if (fields.tos_url) { uiConfig.tosUrl = fields.tos_url; } if (fields.GoogleOneTap) { uiConfig.credentialHelper = firebaseui.auth.CredentialHelper.GOOGLE_YOLO; } if (fields.GoogleAuthProvider) { uiConfig.signInOptions.push(firebase.auth.GoogleAuthProvider.PROVIDER_ID); } if (fields.FacebookAuthProvider) { uiConfig.signInOptions.push(firebase.auth.FacebookAuthProvider.PROVIDER_ID); } if (fields.TwitterAuthProvider) { uiConfig.signInOptions.push(firebase.auth.TwitterAuthProvider.PROVIDER_ID); } if (fields.GithubAuthProvider) { uiConfig.signInOptions.push(firebase.auth.GithubAuthProvider.PROVIDER_ID); } if (fields.EmailAuthProvider) { uiConfig.signInOptions.push(firebase.auth.EmailAuthProvider.PROVIDER_ID); } if (fields.PhoneAuthProvider) { uiConfig.signInOptions.push(firebase.auth.PhoneAuthProvider.PROVIDER_ID); } if (fields.AnonymousAuthProvider) { uiConfig.signInOptions.push( firebaseui.auth.AnonymousAuthProvider.PROVIDER_ID ); } // Initialize the FirebaseUI Widget using Firebase. var ui = firebaseui.auth.AuthUI.getInstance() || new firebaseui.auth.AuthUI(firebase.auth()); // The start method will wait until the DOM is loaded. ui.start(e.$containerP[0], uiConfig); }