【问题标题】:Logout from firebase app at Java end在 Java 端从 firebase 应用程序注销
【发布时间】:2018-07-08 21:34:35
【问题描述】:

我有一个支持 IOS 和 Andriod 的应用程序。登录基于 Firebase 身份验证,并在应用端完成注销。

现在我想在后端实现注销功能,在那里我将构建一个 REST API。我想从这个 API 中的 Firebase 注销,这样当 App 调用这个 API 时,用户就会被注销。下面是API

@RequestMapping(value = "/user/logout/{userId}", method = POST)
public Response<User> logout(Long userId) {
    //Want to logout with a firebase call
 }

我正在尝试构建一个从应用程序中注销用户的 API。目前注销是在 App 端处理的。我想在使用 Java 的支持下处理这个问题。 Java 端的处理允许我在用户注销时跟踪一些参数。

我在 Firebase 文档中进行了搜索,该文档仅适用于 Andriod 和 IOS,但无法找到从 Firebase 注销以从后端(而不是应用程序)处理的任何方法。 firebase 是否支持从后端注销?

【问题讨论】:

  • “从后端注销”对您意味着什么?您正在尝试做哪些在移动应用中无法做到的事情?
  • 是的,实际上是对后端 API 的注销调用。我正在尝试构建一个从应用程序中注销用户的 API。目前注销是在 App 端处理的。我想在后台使用 Java 处理这个
  • 来自 Firebase 身份验证的所有登录信息都保存在客户端上。没有可退出的后端。让客户端退出的唯一方法是丢弃他们的令牌,您可以通过从客户端调用 signout 来做到这一点。
  • 所以无论如何我都可以在后端保持注销。我想在用户注销时建立一些参数。用户注销时客户端可以发送任何参数吗?
  • @FrankvanPuffelen:我可以使用 firebase 简单登录插件吗?我认为它为我们提供了在后端注销的杠杆

标签: java android ios firebase firebase-authentication


【解决方案1】:

我实现的解决方案:

将“idToken”和“refreshToken”保存到带有“isAuthenticated”标志的客户端(移动应用程序)中。

当用户登录时我在 Redux 中设置了一个对象 {idToken: USER_ID_TOKEN, refreshToken: USER_REFRESH_TOKEN, isAuthentitated: true}

当用户注销时,我更新我的对象 {idToken: USER_ID_TOKEN, refreshToken: USER_REFRESH_TOKEN, isAuthentitated: false}

最后,当您需要知道用户是否已通过身份验证时,您需要验证来自 Redux 的标志 isAuthenticated

对于从 App 到后端的每个请求,我发送“refreshToken”以验证用户,当 Firebase 使用新的“idToken”和“refreshToken”向后端发送响应时,我将此信息转发给 App 以更新 Redux。

您可以在以下页面找到 Redux 实现:https://alligator.io/react/react-native-redux/

【讨论】:

    猜你喜欢
    • 2021-08-03
    • 1970-01-01
    • 2021-12-27
    • 2019-04-21
    • 2016-02-07
    • 1970-01-01
    • 2019-09-20
    • 2019-04-04
    • 1970-01-01
    相关资源
    最近更新 更多