2017-08-09 4 views
0

Grettings. Ich implementiere eine Firebase-Authentifizierung für meine mobile App mit einem benutzerdefinierten Back-End (Spring Boot). Ich authentifiziere mich erfolgreich in Facebook, indem ich firebase in der mobilen App verwende => ich möchte Benutzerinformationen in der DB meines Backends speichern (nicht Firebase).FirebaseAuth JAVA (Springboot) Verify Token

Stuck, um den Token-Verifikationsfehler zu debuggen.

Token Prüfung - fast genauso wie in google doc:

try { 
     FirebaseToken decodedToken = Tasks.await(
       FirebaseAuth.getInstance().verifyIdToken(info.getToken())); 
    } catch (ExecutionException | InterruptedException | IllegalArgumentException e) { 
     logger.error(e.getMessage()); 
    } 

einen Fehler bekommen: java.lang.IllegalArgumentException

und kann nicht/debug herausfinden, was es verursacht.

in Verbindung stehend - Feuerbasis config:

@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: hinzugefügt:

FirebaseAuth.getInstance().verifyIdToken(info.getToken()).addOnFailureListener(e -> { 
        System.err.println("Error verifying token: " + e.getMessage()); 
       }); 

der Fehler i ist einfach null bekommen, die isn; t etwas zu sagen darüber Herkunft ist.

+0

Zuerst fügen Sie bitte den gesamten Traceback hinzu. Sie könnten entweder die Anforderung mit 'Tasks.wait ( FirebaseAuth.getInstance(). VerifyIdToken (info.getToken()));' oder explizit mit 'FirebaseAuth.getInstance(). VerifyIdToken (info.getToken())). addOnFailureListener (Throwable :: printStackTrace); ' – soon

+0

Stellen Sie dann sicher, dass Ihr Token dem Format entspricht. Sie können sich die Methode 'com.google.api.client.json.webtoken.JsonWebSignature $ Parser.parse' (JsonWebSignature.java:599 in meinen Quellen) ansehen - sie enthält eine Vorbedingungsprüfung und schlägt mit' IllegalArgumentException' mit 'fehl Null-Nachricht, wenn das Token keinen Punkt enthält – soon

Antwort

-1

Build-Version APK-Version. Bereitstellen und erneut versuchen Die Hashes werden anders sein, damit es helfen kann.