10

Ich stoße auf ein Problem mit Android Firebase Auth unter Verwendung von com.google.gms:google-services:3.0.0 und com.google.firebase:firebase-auth:9.0.1.Firebase Android-Authentifizierung fehlgeschlagen: exspirated_token (Auth-Token ist abgelaufen)

1 Stunde nach der Authentifizierung mit Firebase (Google oder Facebook), erhalte ich folgende Fehlermeldung:

W/PersistentConnection: pc_0 - Authentication failed: expired_token (Auth token is expired)

Warum Firebase Token nach 1 Stunde ablaufen und wie dieser Ablaufzeitraum zu verlängern?

UPDATE

ich dieses Problem noch begegnen, läuft Firebase Token nach 1 Stunde. Jetzt bekomme ich die folgende Nachricht: W/PersistentConnection: pc_0 - Authentication failed: invalid_token (Invalid claim 'kid' in auth header.)

Ich schätze jede Hilfe.

+0

Hallo, ich benutze Firebase-Auth: 9.0.2 und ich habe das gleiche Problem. Hast du eine Lösung gefunden, bitte? – Allan

+0

Haben Sie eine Lösung gefunden? Ich stehe immer noch vor diesem Problem. –

Antwort

0

Versuchen Sie, FirebaseInstanceIdService zu implementieren, um Aktualisierungstoken zu erhalten.

Zugriff auf die Registrierungstoken:

können Sie den Wert des Tokens durch FirebaseInstanceIdService erstreckt zugreifen. Stellen Sie sicher, dass Sie den Dienst Ihres manifest hinzugefügt haben, dann rufen Sie getToken im Zusammenhang mit onTokenRefresh und melden Sie den Wert wie folgt:

@Override 
public void onTokenRefresh() { 
    // Get updated InstanceID token. 
    String refreshedToken = FirebaseInstanceId.getInstance().getToken(); 
    Log.d(TAG, "Refreshed token: " + refreshedToken); 

    // TODO: Implement this method to send any registration to your app's servers. 
    sendRegistrationToServer(refreshedToken); 
} 

The onTokenRefreshcallback fires whenever a new token is generated, so calling getToken in its context ensures that you are accessing a current, available registration token. FirebaseInstanceID.getToken() returns null if the token has not yet been generated.

Code:

import android.util.Log; 

import com.google.firebase.iid.FirebaseInstanceId; 
import com.google.firebase.iid.FirebaseInstanceIdService; 


public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService { 

    private static final String TAG = "MyFirebaseIIDService"; 

    /** 
    * Called if InstanceID token is updated. This may occur if the security of 
    * the previous token had been compromised. Note that this is called when the InstanceID token 
    * is initially generated so this is where you would retrieve the token. 
    */ 
    // [START refresh_token] 
    @Override 
    public void onTokenRefresh() { 
     // Get updated InstanceID token. 
     String refreshedToken = FirebaseInstanceId.getInstance().getToken(); 
     Log.d(TAG, "Refreshed token: " + refreshedToken); 

     // TODO: Implement this method to send any registration to your app's servers. 
     sendRegistrationToServer(refreshedToken); 
    } 
    // [END refresh_token] 

    /** 
    * Persist token to third-party servers. 
    * 
    * Modify this method to associate the user's FCM InstanceID token with any server-side account 
    * maintained by your application. 
    * 
    * @param token The new token. 
    */ 
    private void sendRegistrationToServer(String token) { 
     // Add custom implementation, as needed. 
    } 
} 

Ich hoffe, es hilft dir.

+0

Danke @pRaNaY, ich werde es versuchen. Warum wird dies nicht in Firebase Authentication-Dokumenten erwähnt? Die alte Firebase-Konsole konnte den Token-Ablaufzeitraum manuell einstellen, jetzt kann ich diese Option nicht mehr finden. – kandroid

+0

Das hier beschriebene Token ist ein Geräteregistrierungs-Token für FCM - https://firebase.google.com/docs/cloud-messaging/android/client –

+0

Dies ist nicht das Authentifizierungs-Token. Dies ist für den FCM-Token.Beides sind total verschiedene Dinge! – kirtan403

0

Die neue maximale Lebensdauer für Firebase Tokens beträgt 1 Stunde - ich habe es heute in der Dokumentation gelesen.

Wie für Ungültiger Anspruch 'Kid' in Auth-Header., bekomme ich genau 2 Suchergebnisse auf Google dafür (: Keine Dokumentation zu Kid in Firebase Dokumentation. Ich denke, wir müssen auf Antworten von Google warten (oder wechseln Sie zurück zur alten Version von Firebase wenn möglich).

Verwandte Themen