我的Ionic应用程序有不同的身份验证方式,包括Google, LinkedIn
,现在firebase
并不支持linkedIn
开箱即用,但似乎有一种方法使用自定义身份验证并使用firebase.auth().signInWithCustomToken
,
任何人都能给我一些关于它的1,2,3,4指令吗?
答案 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)的身份验证。
我们无法在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);
}
}
});
注意:我之前没有实现过。我是实施这一目标的非常感兴趣的人之一。当你完全解决这个问题时,我会按照你的回答。