如何使用Firebase实现LinkedIn身份验证?

时间:2017-07-24 04:25:07

标签: firebase ionic-framework ionic2 firebase-authentication linkedin

我的Ionic应用程序有不同的身份验证方式,包括Google, LinkedIn,现在firebase并不支持linkedIn开箱即用,但似乎有一种方法使用自定义身份验证并使用firebase.auth().signInWithCustomToken

任何人都能给我一些关于它的1,2,3,4指令吗?

2 个答案:

答案 0 :(得分:2)

我能够使用用于LinkedIn身份验证的firebase功能进行身份验证并使用令牌登录。这尚未投入生产。这是一个指向用于LinkedIn身份验证的GitHub存储库的链接。

https://github.com/firebase/functions-samples/tree/master/linkedin-auth

答案 1 :(得分:0)

这个问题看起来很有趣。我也在研究。我提供了一些有用的链接。

https://jwt.io/ - 您可以在此处找到适用于Android的第三方JWT库。因为Firebase使用基于SON Web令牌(JWT)的身份验证。

https://firebase.google.com/docs/auth/admin/verify-id-tokens#verify_id_tokens_using_a_third-party_jwt_library

我们无法在Firebase Admin SDK中创建自定义令牌。但我们可以从Firebase身份验证服务器创建自定义令牌。解释如下:h ttps://firebase.google.com/docs/auth/admin/create-custom-tokens

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
/* Here, you get the custom token. You can simply store this token in String variable, and later pass as customToken */
        }
    });

此链接&#34; https://github.com/jwtk/jjwt&#34;提供API来创建自定义JWT令牌。创建自定义令牌后,您可以使用

FirebaseAuth.getInstance().signInWithCustomToken(mCustomToken)
        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    // Sign in success, update UI with the signed-in user's information
                    Log.d(TAG, "signInWithCustomToken:success");
                    FirebaseUser user = mAuth.getCurrentUser();
                    updateUI(user);
                } else {
                    // If sign in fails, display a message to the user.
                    Log.w(TAG, "signInWithCustomToken:failure", task.getException());
                    Toast.makeText(CustomAuthActivity.this, "Authentication failed.",
                            Toast.LENGTH_SHORT).show();
                    updateUI(null);
                }
            }
        });

注意:我之前没有实现过。我是实施这一目标的非常感兴趣的人之一。当你完全解决这个问题时,我会按照你的回答。