Firebase signInWithRedirect and getRedirectResult setup with Proxy auth requests to firebaseapp.com

241 views Asked by At

Ive been having trouble getting signInWithRedirect and getRedirectResult working on my Firebase App that I host. I am only allowing Google and Apple Login and have been trying to set this up using their documentation Option 3: Proxy auth requests to firebaseapp.com (https://firebase.google.com/docs/auth/web/redirect-best-practices).

I am on my own dedicated server using Apache. Can I just add this to my .htaccess. I added the below and the signInWithRedirect goes to the corresponding sign in page but then come back and never fires off getRedirectResult and I get null on getRedirectResult. Am I doing something wrong?

RewriteEngine On
RewriteRule ^__/auth/(.*)$ https://{project_ID}.firebaseapp.com/__/auth/$1 [P]

MY JS:

import { auth, db, formatDate, page } from "./index.js";
import {
  getAuth,
  signInWithPopup,
  signInWithRedirect,
  getRedirectResult,
  GoogleAuthProvider,
  signOut,
  OAuthProvider,
  onAuthStateChanged,
  getAdditionalUserInfo,
  deleteUser,
} from "firebase/auth";
import { getDoc, setDoc, doc, serverTimestamp } from "firebase/firestore";


if (page === "/register.html" || page === "/login.html") {
  checkRedirect();
}

if (btnAppleMember) {
  btnAppleMember.addEventListener("click", (e) => {
    e.preventDefault();
    const provider = new OAuthProvider("apple.com");
    signInWithRedirect(auth, provider);
  });
}

async function checkRedirect() {
  try {
    const result = await getRedirectResult(auth);
    console.log(result);
if (result) {
  const credential = OAuthProvider.credentialFromResult(result);
  const additionalUserInfo = getAdditionalUserInfo(result);
  const isNewUser = additionalUserInfo.isNewUser;

  if (credential) {
    const accessToken = credential.accessToken;


    if (isNewUser) {
      console.log("New user created for user");

    } else {
      console.log("Member already");

    }
  }

  console.log("redirect");
    } else {
      console.log("no redirect");

    }
  } catch (error) {
    console.log("Error in getRedirectResult:", error);
  }
}
0

There are 0 answers