@xuda.io/xuda-widget-plugin-firebase-auth-ui
Version:
Xuda firebaseUI Authentication widget
106 lines (95 loc) • 3.04 kB
JavaScript
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);
}