[英]How to persist Firebase Auth and use it to login later?
我想要我的应用程序中的功能,即用户可以使用多个帐户登录并在这些帐户之间切换,而无需再次输入 email 和密码。
一种明显有效的方法是保留电子邮件密码对。 但这是非常不安全的。
因此,我宁愿保留该帐户的 session / 令牌。 切换帐户时,我们从该帐户注销,从另一个帐户获取 session / 令牌并使用它登录。 不幸的是,我就是找不到从哪里获得 session / 令牌。 AFAIK Firebase 在内部执行我上面描述的操作(他们将 session / 令牌保存到 SharedPreferences,并使用它在应用程序启动时对用户进行身份验证)。
那么我自己该怎么做呢? (我的平台是安卓)
来自使用自定义身份验证系统使用 Firebase进行身份验证的文档
您可以将 Firebase 身份验证与自定义身份验证系统集成,方法是修改您的身份验证服务器以在用户成功登录时生成自定义签名令牌。您的应用程序接收此令牌并使用它与 Firebase 进行身份验证。
当用户登录您的应用程序时,将他们的登录凭据(例如,他们的用户名和密码)发送到您的身份验证服务器。 您的服务器检查凭据并返回自定义令牌(如果有效)。请参阅此文档以创建自定义令牌
从身份验证服务器收到自定义令牌后,将其传递给 signInWithCustomToken 以登录用户:
import { getAuth, signInWithCustomToken } from "firebase/auth"; const auth = getAuth(); signInWithCustomToken(auth, token).then((userCredential) => { // Signed in const user = userCredential.user; //... }).catch((error) => { const errorCode = error.code; const errorMessage = error.message; //... });
您还可以查看此 stackoverflow线程
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.