41 lines
1.6 KiB
Plaintext
41 lines
1.6 KiB
Plaintext
@using Indotalent.Infrastructure.Authentication.Identity
|
|
@using Microsoft.Extensions.Options
|
|
@inject IOptions<IdentitySettingsModel> IdentityOptions
|
|
|
|
@if (IdentityOptions.Value.SsoFirebase.IsUsed)
|
|
{
|
|
<script src="https://www.gstatic.com/firebasejs/9.23.0/firebase-app-compat.js"></script>
|
|
<script src="https://www.gstatic.com/firebasejs/9.23.0/firebase-auth-compat.js"></script>
|
|
<script>
|
|
const firebaseConfig = {
|
|
apiKey: "@IdentityOptions.Value.SsoFirebase.ApiKey",
|
|
authDomain: "@IdentityOptions.Value.SsoFirebase.AuthDomain",
|
|
projectId: "@IdentityOptions.Value.SsoFirebase.ProjectId",
|
|
storageBucket: "@IdentityOptions.Value.SsoFirebase.StorageBucket",
|
|
messagingSenderId: "@IdentityOptions.Value.SsoFirebase.MessagingSenderId",
|
|
appId: "@IdentityOptions.Value.SsoFirebase.AppId"
|
|
};
|
|
|
|
if (typeof firebase !== 'undefined' && !firebase.apps.length) {
|
|
firebase.initializeApp(firebaseConfig);
|
|
}
|
|
|
|
async function signInWithGoogle() {
|
|
if (typeof firebase === 'undefined') return null;
|
|
const provider = new firebase.auth.GoogleAuthProvider();
|
|
try {
|
|
const result = await firebase.auth().signInWithPopup(provider);
|
|
return { email: result.user.email };
|
|
} catch (error) {
|
|
console.error("Firebase Auth Error:", error);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
async function firebaseLogout() {
|
|
if (typeof firebase !== 'undefined') {
|
|
await firebase.auth().signOut();
|
|
}
|
|
}
|
|
</script>
|
|
} |