0

我正在尝试在我的应用中为 Android 实现自定义身份验证。

我想要的表格只是一个电话号码。目前我正在这样做:

  • 我在 IntelliJ 中有一个使用 heroku 的应用程序,它生成自定义令牌。
  • 我将该应用程序部署到 Heroku。

我面临的问题是我Heroku 中运行 Java 应用程序。但是,我现在只有:

String uid = "some-uid";
HashMap<String, Object> additionalClaims = new HashMap<String, Object>();
additionalClaims.put("premiumAccount", true);

FirebaseAuth.getInstance().createCustomToken(uid, additionalClaims)
    .addOnSuccessListener(new OnSuccessListener<String>() {
        @Override
        public void onSuccess(String customToken) {
            // Send token back to client
        }
    });

我感到困惑的是:

  1. 如何从 Android 客户端与在 Heroku 中运行的服务器进行通信?
  2. 如何获得我生成的令牌?
4

2 回答 2

3

通常,您在自己处理用户身份验证时创建自定义令牌。那么我们可以设想如下信息流:

  1. Android 应用程序将用户凭据(例如用户名和密码)发送到您在 Heroku 中的后端服务器。
  2. 后端服务器对用户进行身份验证,并创建一个自定义令牌(您目前拥有的代码)。
  3. 自定义令牌作为身份验证响应发送回 Android 应用程序。

现在您可以在 Android 应用中使用自定义令牌向 Firebase 进行身份验证。

希望这可以解决问题。

于 2017-02-22T23:59:47.407 回答
1

您将需要查看像Spark这样的 Web 框架来接收来自您的 Android 应用程序的请求并将响应发送回您的 Android 应用程序。在您的 Android 设备上,您将向您的 Heroku 实例(将位于某个 URL)发出 HTTP 请求,您将使用在 Heroku 中运行的 Spark 来接收请求,您将使用 Firebase Admin 生成一个自定义令牌,然后您可以将自定义令牌作为 Spark 响应发送回您的 Android 设备。

于 2017-02-18T14:50:23.237 回答