Revert to popup for Google sign-in, fix loading loop
This commit is contained in:
1 parent
418184651a
commit
f4dcfda334
1 file changed
+6
-14
+6
-14
@@ -633,7 +633,7 @@
|
|||||||
<script src="config.js"></script>
|
<script src="config.js"></script>
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import { initializeApp } from 'https://www.gstatic.com/firebasejs/10.12.0/firebase-app.js';
|
import { initializeApp } from 'https://www.gstatic.com/firebasejs/10.12.0/firebase-app.js';
|
||||||
import { getAuth, isSignInWithEmailLink, signInWithEmailLink, signInWithRedirect, getRedirectResult, GoogleAuthProvider, signOut as fbSignOut, onAuthStateChanged } from 'https://www.gstatic.com/firebasejs/10.12.0/firebase-auth.js';
|
import { getAuth, isSignInWithEmailLink, signInWithEmailLink, signInWithPopup, GoogleAuthProvider, signOut as fbSignOut, onAuthStateChanged } from 'https://www.gstatic.com/firebasejs/10.12.0/firebase-auth.js';
|
||||||
import { getFirestore, doc, getDoc, setDoc, updateDoc, deleteField, collection, query, where, getDocs, addDoc, onSnapshot, serverTimestamp } from 'https://www.gstatic.com/firebasejs/10.12.0/firebase-firestore.js';
|
import { getFirestore, doc, getDoc, setDoc, updateDoc, deleteField, collection, query, where, getDocs, addDoc, onSnapshot, serverTimestamp } from 'https://www.gstatic.com/firebasejs/10.12.0/firebase-firestore.js';
|
||||||
|
|
||||||
if (!window.STEPMATES_CONFIG) {
|
if (!window.STEPMATES_CONFIG) {
|
||||||
@@ -731,18 +731,7 @@ function getFriendDisplayName(uid) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// AUTH
|
// AUTH
|
||||||
let _handlingRedirect = false;
|
|
||||||
|
|
||||||
getRedirectResult(auth).then(async (result) => {
|
|
||||||
if (result?.user) {
|
|
||||||
_handlingRedirect = true;
|
|
||||||
await initUser(result.user);
|
|
||||||
}
|
|
||||||
}).catch(e => console.warn('Redirect result error:', e.code));
|
|
||||||
|
|
||||||
onAuthStateChanged(auth, async (user) => {
|
onAuthStateChanged(auth, async (user) => {
|
||||||
if (_handlingRedirect) return;
|
|
||||||
|
|
||||||
if (isSignInWithEmailLink(auth, window.location.href)) {
|
if (isSignInWithEmailLink(auth, window.location.href)) {
|
||||||
const urlParams = new URLSearchParams(window.location.search);
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
const email = urlParams.get('email') || localStorage.getItem('emailForSignIn');
|
const email = urlParams.get('email') || localStorage.getItem('emailForSignIn');
|
||||||
@@ -1316,14 +1305,17 @@ window.signInWithGoogle = async function() {
|
|||||||
btn.innerHTML = '<span class="spinner" style="color:#4285F4"></span> Signing in…';
|
btn.innerHTML = '<span class="spinner" style="color:#4285F4"></span> Signing in…';
|
||||||
try {
|
try {
|
||||||
const provider = new GoogleAuthProvider();
|
const provider = new GoogleAuthProvider();
|
||||||
await signInWithRedirect(auth, provider);
|
const result = await signInWithPopup(auth, provider);
|
||||||
|
await initUser(result.user);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
btn.disabled = false;
|
btn.disabled = false;
|
||||||
btn.innerHTML = `<svg width="18" height="18" viewBox="0 0 18 18" style="flex-shrink:0"><path fill="#4285F4" d="M17.64 9.2c0-.637-.057-1.251-.164-1.84H9v3.481h4.844c-.209 1.125-.843 2.078-1.796 2.717v2.258h2.908c1.702-1.567 2.684-3.875 2.684-6.615z"/><path fill="#34A853" d="M9 18c2.43 0 4.467-.806 5.956-2.184l-2.908-2.258c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H.957v2.332C2.438 15.983 5.482 18 9 18z"/><path fill="#FBBC05" d="M3.964 10.707c-.18-.54-.282-1.117-.282-1.707s.102-1.167.282-1.707V4.961H.957C.347 6.175 0 7.55 0 9s.348 2.825.957 4.039l3.007-2.332z"/><path fill="#EA4335" d="M9 3.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C13.463.891 11.426 0 9 0 5.482 0 2.438 2.017.957 4.961L3.964 7.293C4.672 5.166 6.656 3.58 9 3.58z"/></svg> Sign in with Google`;
|
btn.innerHTML = `<svg width="18" height="18" viewBox="0 0 18 18" style="flex-shrink:0"><path fill="#4285F4" d="M17.64 9.2c0-.637-.057-1.251-.164-1.84H9v3.481h4.844c-.209 1.125-.843 2.078-1.796 2.717v2.258h2.908c1.702-1.567 2.684-3.875 2.684-6.615z"/><path fill="#34A853" d="M9 18c2.43 0 4.467-.806 5.956-2.184l-2.908-2.258c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H.957v2.332C2.438 15.983 5.482 18 9 18z"/><path fill="#FBBC05" d="M3.964 10.707c-.18-.54-.282-1.117-.282-1.707s.102-1.167.282-1.707V4.961H.957C.347 6.175 0 7.55 0 9s.348 2.825.957 4.039l3.007-2.332z"/><path fill="#EA4335" d="M9 3.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C13.463.891 11.426 0 9 0 5.482 0 2.438 2.017.957 4.961L3.964 7.293C4.672 5.166 6.656 3.58 9 3.58z"/></svg> Sign in with Google`;
|
||||||
document.getElementById('auth-error').textContent = 'Google sign-in failed. Please try again.';
|
if (e.code !== 'auth/popup-closed-by-user' && e.code !== 'auth/cancelled-popup-request') {
|
||||||
|
document.getElementById('auth-error').textContent = 'Google sign-in failed. Please try again or use email.';
|
||||||
document.getElementById('auth-error').style.display = 'block';
|
document.getElementById('auth-error').style.display = 'block';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
window.showAuthForm = function() {
|
window.showAuthForm = function() {
|
||||||
document.getElementById('auth-card').style.display = 'block';
|
document.getElementById('auth-card').style.display = 'block';
|
||||||
|
|||||||
Reference in new issue
Block a user