2017-08-09 7 views
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であり、それが起源だについては何も言ってトン。

+0

まず、トレースバック全体を追加してください。あなたは 'Tasks.await( FirebaseAuth.getInstance()。verifyIdToken(info.getToken()));'でリクエストを失敗させるか、FirebaseAuth.getInstance()。verifyIdToken(info.getToken ))。addOnFailureListener(Throwable :: printStackTrace); ' – soon

+0

次に、あなたのトークンがフォーマットと一致することを確認してください。 'com.google.api.client.json.webtoken.JsonWebSignature $ Parser.parse'メソッド(私のソースではJsonWebSignature.java:599)を見ることができます。これは前提条件のチェックを含んでいて、' IllegalArgumentException'で 'トークンにドットが含まれていない場合は「null」メッセージ – soon

答えて

-1

ビルドリリースAPKバージョン。展開してもう一度お試しください。ハッシュは異なるので、助けになるでしょう。