【发布时间】:2018-05-17 19:56:15
【问题描述】:
我正在将 Firebase 与我在 Android 应用中的现有身份验证集成。根据Firebase documentation,需要按照以下步骤来实现身份验证
- 在安全服务器上生成安全令牌
- 验证客户端
我对生成安全令牌感到困惑,我需要在安全服务器上生成它吗?这是什么意思?我正在考虑在 android 客户端本身中生成令牌。
让我解释一下我现有的身份验证机制,在获取凭据作为输入后,它将检查与MongoLab API 通过Retrofit 连接的MongoDB
在此之后,我正在考虑通过以下方式与 Firebase 集成
- 从我在成功登录后获得的登录用户 UID 以及在 android 客户端本身中生成一个安全令牌 (JWT)。
- 使用生成的
JWT,我将再次对客户端进行身份验证(第二次使用 firebase,最初使用我现有的身份验证机制)
生成安全令牌 (JWT)
Map<String, Object> payload = new HashMap<String, Object>();
payload.put("uid", "uniqueId1");
payload.put("some", "arbitrary");
payload.put("data", "here");
TokenGenerator tokenGenerator = new TokenGenerator("<YOUR_FIREBASE_SECRET>");
String token = tokenGenerator.createToken(payload);
验证客户端
Firebase ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/");
ref.authWithCustomToken(token, new Firebase.AuthResultHandler() {
@Override
public void onAuthenticationError(FirebaseError error) {
System.err.println("Login Failed! " + error.getMessage());
}
@Override
public void onAuthenticated(AuthData authData) {
System.out.println("Login Succeeded!");
}
});
这里看起来像是一个往返,比如 Authenticating a User 2 次,使用我现有的身份验证,然后再次使用 Firebase 自定义身份验证。有没有更好的方法来实现上述过程?
【问题讨论】:
标签: android mongodb firebase firebase-authentication