私はサーバーにカスタムトークンを生成して検証しようとしています。ファイアウォールの認証トークンを私のアプリ全体で再利用して、APIのセキュリティを確保したいと考えています。com.google.firebase.auth.FirebaseAuthException:トークンはこのアプリケーション用ではありません
私はFirebaseのドキュメントからこのコードを取得しています。 Creating Custom Token、Imはなって何Verifying ID Token
FirebaseOptions options = new FirebaseOptions.Builder()
.setServiceAccount(sce.getServletContext().getResourceAsStream("/WEB-INF/serviceAccountKey.json"))
.setDatabaseUrl("https://[project-id].firebaseio.com/")
.build();
FirebaseApp.initializeApp(options);
final AtomicBoolean done = new AtomicBoolean(false);
FirebaseAuth.getInstance().createCustomToken("the-great-uid")
.addOnSuccessListener(new OnSuccessListener<String>() {
@Override
public void onSuccess(String customToken) {
FirebaseAuth.getInstance().verifyIdToken(customToken)
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception excptn) {
LOG.log(Level.SEVERE, "fail verification", excptn);
done.set(true);
}
})
.addOnSuccessListener(new OnSuccessListener<FirebaseToken>() {
@Override
public void onSuccess(FirebaseToken decodedToken) {
String uid = decodedToken.getUid();
LOG.log(Level.INFO, "SUCCESS VERIFICATION: ");
LOG.log(Level.INFO, "UUDI: {0}", uid);
done.set(true);
}
});
LOG.log(Level.INFO, "Custom token: {0}", customToken);
done.set(true);
}
});
while (!done.get());
:
[INFO] INFO: Custom token: eyJhbGciOiJSUzI1NiJ9.eyJ******
[INFO] After custom token
[INFO] Nov 17, 2016 3:15:27 PM com.adslide.backend.listeners.AdslideContextListener$1$2 onFailure
[INFO] com.google.firebase.auth.FirebaseAuthException: Token is not for this app
[INFO] at com.google.firebase.auth.internal.FirebaseTokenVerifier.verifyTokenAndSignature(FirebaseTokenVerifier.java:52)
[INFO] at com.google.firebase.auth.FirebaseAuth$1.call(FirebaseAuth.java:150)
[INFO] at com.google.firebase.auth.FirebaseAuth$1.call(FirebaseAuth.java:144)
[INFO] at com.google.firebase.tasks.Tasks$1.run(Tasks.java:63)
[INFO] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[INFO] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[INFO] at com.google.appengine.tools.development.BackgroundThreadFactory$1$1.run(BackgroundThreadFactory.java:60)
は、私が何かを逃しましたか?私はGoogle Appengineを使用しています。正しいと仮定してください。project-id
とserviceAccountKey.json