这与这里的问题类似
const provider = new GoogleAuthProvider()
provider.setCustomParameters({
prompt: 'select_account',
state: 'saveAction',
})
await signInWithRedirect(getAuth(), provider)
我想了解是否有一种方法可以在登录完成后读取我的
getRedirectResult
中的任何自定义参数。
我需要从我的应用程序传递一些
state
,例如用户正在执行的操作,并且需要在登录后完成。
我无法找到解决方案,因此我的解决方法是保留在 localStorage 中并在成功登录后获取它。
localStorage.setItem(key, value)
将自定义参数存储在浏览器的本地存储中。您可以使用唯一的密钥来识别您的自定义参数。localStorage.getItem(key)
检索您之前存储在本地存储中的自定义参数。举个例子
// Before redirecting for sign-in
const customParams = { action: "user_registration" };
localStorage.setItem("myCustomParams", JSON.stringify(customParams));
firebase.auth().signInWithRedirect(provider, { state: customParams });
// After successful sign-in and getRedirectResult
const retrievedParams = JSON.parse(localStorage.getItem("myCustomParams"));
console.log("Retrieved custom parameters:", retrievedParams);
// Clear storage after use
localStorage.removeItem("myCustomParams");