首页 文章

Firebase:我可以使用Facebook的新帐户套件来验证应用用户吗?

提问于
浏览
6

Facebook刚刚在F8 2016推出了Account Kit .

它使应用程序用户可以使用他们的电话号码或电子邮件地址登录 .

我已经尝试使用它的返回访问令牌来验证Firebase的常规Facebook登录,但它不起作用 .

是否已经有办法使用Facebook帐户套件使用Firebase对应用程序用户进行身份验证?

Additional Info

我可以通过Account Kit登录并使用 AccountKit.getCurrentAccessToken(); 接收访问令牌

然后,我尝试使用访问令牌对Firebase进行身份验证:

选项1)

mFirebaseRef.authWithOAuthToken("facebook", accessToken.getToken(), new AuthResultHandler("facebook"));

  • FirebaseError:提供的身份验证凭据无效 .

选项2)

mFirebaseRef.authWithCustomToken(accessToken.getToken(), new Firebase.AuthResultHandler() { ... }

  • FirebaseError:登录失败 - 无法解析身份验证令牌 .

(顺便说一句,访问令牌字符串是使用常规Facebook登录按钮登录时生成的令牌长度的一半 . )

我想知道我是否已经可以使用Account Kit生成的令牌来验证Firebase?

(顺便说一句 . 我也试着在这里得到答案:https://groups.google.com/forum/#!topic/firebase-talk/qrb1gWBKO3M

2 回答

  • 5

    我在Firebase Google Group得到了以下答案:

    是的,在与另一位Firebase工程师讨论后,我非常确定Firebase身份验证实际上不支持Account Kit . 抱歉 . 我们没有计划在工作中支持它,但如果我们有足够多的人要求它,我们会重新考虑 .

  • 3

    是的,可以使用Firebase Custom Authentication .

    您需要使用accountkit用户ID或电话号码作为uid来设置可以创建Firebase自定义令牌的身份验证服务器 .

    从身份验证服务器收到自定义令牌后,您可以使用它来登录firebase,如下所示:

    mAuth.signInWithCustomToken(mCustomToken)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    Log.d(TAG, "signInWithCustomToken:onComplete:" + task.isSuccessful());
                    if (!task.isSuccessful()) {
                        Log.w(TAG, "signInWithCustomToken", task.getException());
                        Toast.makeText(CustomAuthActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                    }
                }
            });
    

    这个blog post有关于如何实现它的详细分步指南 .

相关问题