GVKun编程网logo

Firebase-删除并重新安装应用程序不会取消对用户的身份验证(删除所有内容并重新安装)

10

如果您想了解Firebase-删除并重新安装应用程序不会取消对用户的身份验证的相关知识,那么本文是一篇不可错过的文章,我们将对删除所有内容并重新安装进行全面详尽的解释,并且为您提供关于android–

如果您想了解Firebase-删除并重新安装应用程序不会取消对用户的身份验证的相关知识,那么本文是一篇不可错过的文章,我们将对删除所有内容并重新安装进行全面详尽的解释,并且为您提供关于android – Firebase检查用户的身份验证状态/用户是否存在、android – 安装我的应用程序时Google帐户的身份验证错误、android – 禁用或删除用户时不会触发Firebase身份验证状态更改、Axios 将当前登录的用户 ID 放入具有 Firebase 身份验证的节点应用程序中的有价值的信息。

本文目录一览:

Firebase-删除并重新安装应用程序不会取消对用户的身份验证(删除所有内容并重新安装)

Firebase-删除并重新安装应用程序不会取消对用户的身份验证(删除所有内容并重新安装)

使用以下代码对用户进行身份验证之后(以下是我的代码的精简版本,因此仅显示成功的登录逻辑)…

let firebaseReference = Firebase(url: "https://MY-FIREBASE.firebaseio.com")FBSession.openActiveSessionWithReadPermissions(["public_profile", "user_friends"], allowLoginUI: true,    completionHandler: { session, state, error in        if state == FBSessionState.Open {            let accessToken = session.accessTokenData.accessToken            firebaseReference.authWithOAuthProvider("facebook", token: accessToken,                withCompletionBlock: { error, authData in                    if error != nil {                        // Login failed.                    } else {                        // Logged in!                        println("Logged in! \(authData)")                    }            })        }    })}

(即启动和运行应用程序,成功登录)。

如果您随后删除该应用程序并将其重新安装在同一设备上,则此调用(我正在应用程序委托中使用该调用来确定用户是否已登录)将始终返回他们已登录。

if firebaseReference.authData == nil {    // Not logged in} else {    // Logged in}

这是为什么?我本以为删除该应用程序并重新安装它会擦除所有数据。

如果您在iOS模拟器中重置“内容和设置”,然后安装该应用,则该firebaseReference.authData属性将再次为nil

答案1

小编典典

Firebase身份验证会话在iOS钥匙串中保留在用户设备上。卸载应用程序时, 不会 删除该应用程序的钥匙串数据。

如果要手动清除数据,则可以将一些其他元数据与应用程序一起存储,并手动调用FirebaseRef.unauth()以清除持久化的会话。

android – Firebase检查用户的身份验证状态/用户是否存在

android – Firebase检查用户的身份验证状态/用户是否存在

所以我使用Firebase身份验证(只有电子邮件和密码)构建了一个简单的应用程序,它运行良好,但为了TestFlight我的注册/登录页面,我需要删除之前注册过该应用程序的所有人的帐户,只是发现删除控制台上的用户实际上并没有在应用程序中取消它们.我想有一种方法可以在Firebase控制台中检查用户的身份验证状态(如果它们存在或至少存在),但我找不到保存生命的功能.欢迎任何帮助和赞赏!

解决方法:

我遇到了同样的问题,并找到了我一直在使用的解决方法.相反,我只是在/ users(我为用户创建的类别)中查询我的数据库,并检查我当前的ID是否存在.如果没有,我知道该帐户已被删除.这意味着您需要在注册时在/ users中创建包含userID的条目,并在删除帐户时删除此条目.要查看当前已验证的用户是否已删除,请执行以下操作:

Nsstring *currentID=[[FIRAuth auth].currentUser uid];
[[[[[FIRDatabase database]reference]child:@"users"]child:currentID]observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
    if (snapshot!=[NSNull Null]) {
        //User still exists
    } else {
        //Account no longer exists (deleted)
    }
}];

android – 安装我的应用程序时Google帐户的身份验证错误

android – 安装我的应用程序时Google帐户的身份验证错误

我可以使用Google Play并下载/安装应用.但是,当我尝试安装已在Google Play商店发布并可见的应用时,我不断收到以下错误消息:

Authentication is required. You need to sign in to your Google
Account.

我在不同的Android设备上试过它,在移动设备上重置Google帐户并重新登录.我仍然最终只为我的应用程序收到相同的错误.

如果您遇到类似的错误,请提供建议.搜索上述错误消息时可用的补救措施很多,但是当所有应用程序都无法下载时.我的问题仅限于我的应用.

该应用程序(一个简单的游戏)是基于Android的,由Unity制作.

链接到该应用:

https://play.google.com/store/apps/details?id=com.CubeBoy.FlyBox

解决方法:

出于某种原因,将最终APK直接发布到制作阶段会导致上述错误.

确保以下内容:

>首先将您的初始APK发布到Alpha.
>设置Google Group帐户进行测试,并将其添加到“管理测试人员列表”下

android – 禁用或删除用户时不会触发Firebase身份验证状态更改

android – 禁用或删除用户时不会触发Firebase身份验证状态更改

在引擎盖下

我在Android应用中使用Firebase身份验证,使用Google,Facebook和电子邮件/密码注册用户.到目前为止,除了单个场景之外,几乎所有内容都能正常工

情景

我需要禁用或删除Firebase控制台中的用户帐户,以禁止我的应用的某些用户.

在这种情况下,当我禁用或删除该特定用户时,用户必须立即从应用程序注销,并且不能再使用它.

错误

我已经使用AuthStateListener来监听身份验证状态更改,并在他们的帐户被禁用或删除后自动注销用户.

FirebaseAuth.getInstance().addAuthStateListener(firebaseAuth -> {
            if (firebaseAuth.getCurrentUser() == null) {
                Intent intent = AuthFlowActivity.getCallingIntent(AuthFlowActivity.FORCE_logoUT);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                startActivity(intent);
                activityExitAnimation(BaseAppActivity.this);
            }
        });

但我从未见过AuthStateListener触发这些操作的任何事件.所以我无法立即注销用户,用户仍然可以继续使用该应用程序.

如果有人可以帮助解决这个问题,我将不胜感激.

解决方法:

禁用或删除用户帐户不会触发身份验证状态更改.也不应该,用户仍然是经过身份验证的.在最多一个小时内,Firebase身份验证将尝试刷新用户的访问令牌.刷新将失败,此时用户将变为未经身份验证并且将激活身份验证状态更改事件.

如果您希望立即撤销用户的授权,则必须在应用程序逻辑的另一部分中执行此操作.一种常见的方法是在应用程序中使用黑名单,例如:在Firebase Database:

/bannedUsers
    uidOfBannedUser: true

现在,当您在Autentication面板中删除/禁用用户帐户时,还会将其uid添加到数据库中禁止用户的列表中.

然后,通过向您的database security rules添加一个条款,例如,可以保护数据库免受未授权用户的访问.

{
  "rules": {
    "bannedUsers": {
      ".read": true,
      ".write": false // only admins can write these
    },
    "messages": {
      ".read": "auth != null && !root.child('bannedUsers').child(auth.uid).exists()"
    }
  }
}

如果使用不同的后端,则实现方式会有所不同.但像这样的黑名单是禁止用户的常用方法.你会发现你甚至可能不太关心他们只禁止他们的身份验证,而不是删除他们的凭据(他们可以简单地重新创建).

Axios 将当前登录的用户 ID 放入具有 Firebase 身份验证的节点应用程序中

Axios 将当前登录的用户 ID 放入具有 Firebase 身份验证的节点应用程序中

如何解决Axios 将当前登录的用户 ID 放入具有 Firebase 身份验证的节点应用程序中?

我目前正在使用 Firebase 身份验证和 MERN 堆栈构建 Chrome 扩展。

我在前端反应应用程序中使用身份验证上下文和私有路由。我想使用 axios put 更新一个特定于每个用户的变量。使用 axios(put 方法) 更新时如何指定用户 id。

我在后端使用自定义令牌。知道如何在前端和后端之间传递 uid 吗?

解决方法

您不应在请求中传递 UID 本身。相反,您应该传递 Firebase ID 令牌,然后在后端使用 Firebase Admin SDK 对其进行验证。

您可以像这样获取当前用户的 ID Token,然后在您的 API 请求中传递它:

import Axios from "axios";

async makeRequest() {
  const idToken = await firebase.auth().currentUser.getIdToken();
  const response = await Axios({
    url: "YourURL",method: "PUT",headers: {authorization: `Bearer ${idToken}`},data: {...}
  })
  console.log(response.data)
}

我在授权中将 ID 令牌作为不记名令牌传递,但这取决于您。

要在后端验证令牌,您可以使用 .verifyIdToken 方法。

您可以在 Express 中间件中进行验证,这样您就不必一次又一次地复制代码:

const authMiddleware = (req,res,next) => {
  const {authorization} = req.headers;
  if (!authorization) return res.sendStatus(401);
  
  const token = authorization.split(" ");
  if (token[0] !== "Bearer") return res.sendStatus(401);

  const decodedToken = await admin.auth().verifyIdToken(idToken)
  console.log(decodedToken)
  req.decodedToken = decodedToken
  return next()
}


//Then on the endpoints where you need to authenticate user:
app.put("/route",authMiddleware,(req,res) => {
  //Process here
  //You can access the auth data by req.decodedToken
})

decodedToken 包含用户的 UID、自定义声明和一些元数据。您可以阅读更多相关信息here。

关于Firebase-删除并重新安装应用程序不会取消对用户的身份验证删除所有内容并重新安装的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于android – Firebase检查用户的身份验证状态/用户是否存在、android – 安装我的应用程序时Google帐户的身份验证错误、android – 禁用或删除用户时不会触发Firebase身份验证状态更改、Axios 将当前登录的用户 ID 放入具有 Firebase 身份验证的节点应用程序中等相关内容,可以在本站寻找。

本文标签: