0
Grettings。 カスタムの既存のバックエンド(Spring Boot)を使用して自分のモバイルアプリケーション用にFirebase認証を実装しています。 モバイルアプリでfirebaseを使用してfacebookで正常に認証しています=>バックエンドのDB(firebaseではない)にユーザー情報を保存します。FirebaseAuth JAVA(Springブート)ベリファイトークン
トークン検証エラーをデバッグしていません。
トークン検証 - Googleドキュメントとほぼ同じ:
try {
FirebaseToken decodedToken = Tasks.await(
FirebaseAuth.getInstance().verifyIdToken(info.getToken()));
} catch (ExecutionException | InterruptedException | IllegalArgumentException e) {
logger.error(e.getMessage());
}
エラーを取得:java.lang.IllegalArgumentException
とは、それを引き起こしているものを/デバッグを見つけることができません。関連
- firebase設定:
@Configuration
public class FirebaseConfig {
private final static Logger logger = LogManager.getLogger(FirebaseConfig.class.getName());
@Value("classpath:firebase_config.json")
private Resource firebase_config;
@PostConstruct
public void init() throws IOException {
FileInputStream serviceAccount = new FileInputStream(firebase_config.getFile());
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
.setDatabaseUrl("https://******-81233.firebaseio.com")
.build();
FirebaseApp.initializeApp(options);
logger.info("Firebase init done");
}
}
UPDATE: が追加された:iなっ
FirebaseAuth.getInstance().verifyIdToken(info.getToken()).addOnFailureListener(e -> {
System.err.println("Error verifying token: " + e.getMessage());
});
エラーは単ににISN null
であり、それが起源だについては何も言ってトン。
まず、トレースバック全体を追加してください。あなたは 'Tasks.await( FirebaseAuth.getInstance()。verifyIdToken(info.getToken()));'でリクエストを失敗させるか、FirebaseAuth.getInstance()。verifyIdToken(info.getToken ))。addOnFailureListener(Throwable :: printStackTrace); ' – soon
次に、あなたのトークンがフォーマットと一致することを確認してください。 'com.google.api.client.json.webtoken.JsonWebSignature $ Parser.parse'メソッド(私のソースではJsonWebSignature.java:599)を見ることができます。これは前提条件のチェックを含んでいて、' IllegalArgumentException'で 'トークンにドットが含まれていない場合は「null」メッセージ – soon