![](/img/trans.png)
[英]How should I create a new Federated Identity Provider for Firebase Authentication
[英]How should I handle Firebase backend authentication
我已經使用Java,Google Web Toolkit和Google Cloud Datastore編寫了一個基本應用程序。 為了進行身份驗證,我正在使用Firebase。 當前端進行RPC調用時,它將傳遞用戶令牌,以便后端可以對其進行驗證。
我想在后端創建一個VerifyToken類,該類將接收用戶令牌,調用Firebase verifyIdToken對其進行驗證,然后返回用戶uid或0(如果尚未成功驗證用戶令牌)。 然后,接收RPC調用的類將使用uid來獲取數據並在RPC響應中將其返回。
這是當前代碼:
public class VerifyToken
{
public String verify(String token)
{
String uid = "0";
try
{
//Connect to Firebase
FirebaseOptions options = new FirebaseOptions.Builder()
.setServiceAccount(new FileInputStream("firebaseJsonHere"))
.setDatabaseUrl("dbUrlHere")
.build();
FirebaseApp.initializeApp(options);
//Verify the token
FirebaseAuth.getInstance().verifyIdToken(token)
.addOnSuccessListener(new OnSuccessListener<FirebaseToken>() {
@Override
public void onSuccess(FirebaseToken decodedToken) {
String uid = decodedToken.getUid();
System.out.println("uid decoded = " + uid);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e)
{
System.out.println(e.getMessage());
}
});
}catch(Exception e){
System.out.println("Exception: " + e.getMessage());
}
//Return the uid or 0 if not validated
return uid;
}
}
請有人讓我知道如何從SuccessListener中獲取結果。 我可以看到uid已成功解碼,只是不確定如何獲取結果。
非常感謝,埃德
我想你可以做到:
public String verify(String token)
{
String uid = "0";
try
{
//Connect to Firebase
FirebaseOptions options = new FirebaseOptions.Builder()
.setServiceAccount(new FileInputStream("firebaseJsonHere"))
.setDatabaseUrl("dbUrlHere")
.build();
FirebaseApp.initializeApp(options);
//Verify the token
FirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdToken(token).getResult();
uid = decodedToken.getUid();
}catch(Exception e){
System.out.println("Exception: " + e.getMessage());
}
//Return the uid or 0 if not validated
return uid;
}
我不是String uid = "0";
忠實String uid = "0";
不過,將其設置為null
聽起來對我來說更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.