36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
window.initGoogleSignIn = async function(clientId) {
|
|
try {
|
|
if (!clientId) {
|
|
throw new Error('ClientId is required');
|
|
}
|
|
|
|
// Inicjalizacja Google Sign-In z dynamicznym ClientId
|
|
google.accounts.id.initialize({
|
|
client_id: clientId,
|
|
callback: handleGoogleResponse,
|
|
auto_select: false,
|
|
cancel_on_tap_outside: true
|
|
});
|
|
|
|
// Wyświetl popup logowania
|
|
google.accounts.id.prompt((notification) => {
|
|
if (notification.isNotDisplayed() || notification.isSkippedMoment()) {
|
|
console.log('Google Sign-In popup not displayed');
|
|
}
|
|
});
|
|
|
|
} catch (error) {
|
|
console.error('Google Sign-In initialization error:', error);
|
|
DotNet.invokeMethodAsync('Bimix.UI.Shared', 'OnGoogleSignInError', error.message);
|
|
}
|
|
};
|
|
|
|
function handleGoogleResponse(response) {
|
|
if (response.credential) {
|
|
// Token otrzymany - wyślij do Blazor
|
|
DotNet.invokeMethodAsync('Bimix.UI.Shared', 'OnGoogleSignInSuccess', response.credential);
|
|
} else {
|
|
DotNet.invokeMethodAsync('Bimix.UI.Shared', 'OnGoogleSignInError', 'No credential received');
|
|
}
|
|
}
|