Tôi có ứng dụng máy chủ và tôi đang cố xác định người dùng hiện đã đăng nhập trên máy chủ đó. Tôi đã xác thực thành công người dùng trên ứng dụng web của tôi như thế này:Mã thông báo xác minh Firebase
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider).then(function(result) {
userJsonToken = result.credential.accessToken;
user = result.user;
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
});
sau đó tôi gửi userJsonToken đến máy chủ của tôi qua một cuộc gọi ajax và tôi có thể thấy các dấu hiệu khi tôi gỡ lỗi để token đang được gửi đi một cách chính xác đến máy chủ.
Trong ứng dụng máy chủ của tôi, tôi đang làm điều này:
try (InputStream is = FirebaseUtil.class.getClassLoader().getResourceAsStream(FIREBASE_CREDENTIALS_JSON_FILE)) {
FirebaseOptions options = new FirebaseOptions.Builder().setServiceAccount(is).setDatabaseUrl(FIREBASE_DATABASE_URL).build();
FirebaseApp.initializeApp(options);
} catch (IOException e) {
e.printStackTrace(System.err);
}
Sau đó, tôi làm:
FirebaseAuth.getInstance().verifyIdToken(idToken).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception ex) {
throw new AuthenticationServiceException(ex.getMessage(), ex);
}
}).addOnSuccessListener(new OnSuccessListener<FirebaseToken>() {
@Override
public void onSuccess(FirebaseToken token) {
System.out.println("Yeehaw");
}
}).addOnCompleteListener(new OnCompleteListener<FirebaseToken>() {
@Override
public void onComplete(Task<FirebaseToken> arg0) {
System.out.println(arg0.isSuccessful());
}
});
Tại thời điểm này, các OnFailureListener là nhận được gọi. Tôi nhận được một java.lang.IllegalArgumentException không có giải thích về lý do tại sao hoặc những gì đã xảy ra. Có anyway tôi có thể xem các bản ghi trên Firebase sẽ làm sáng tỏ một số điều đã xảy ra? Cảm ơn
Đây là lỗi hoàn chỉnh:
Caused by: java.lang.IllegalArgumentException
at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:111)
at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:37)
at com.google.api.client.json.webtoken.JsonWebSignature$Parser.parse(JsonWebSignature.java:602)
at com.google.firebase.auth.FirebaseToken.parse(FirebaseToken.java:81)
at com.google.firebase.auth.FirebaseAuth$1.call(FirebaseAuth.java:143)
at com.google.firebase.auth.FirebaseAuth$1.call(FirebaseAuth.java:140)
at com.google.firebase.tasks.Tasks$1.run(Tasks.java:63)
Bạn đã bao giờ tìm thấy giải pháp cho điều này chưa? Bây giờ tôi đang nhấn chính xác cùng một lỗi là tốt, và đang bối rối như thế nào để gỡ lỗi nó, cho rằng ngoại lệ cho không có thông tin ở tất cả – RvPr