10

У меня возникла проблема с Android Firebase Auth с использованием com.google.gms:google-services:3.0.0 и com.google.firebase:firebase-auth:9.0.1.Ошибка аутентификации Android Firebase: expired_token (токен аутентификации истек)

1 час после аутентификации с Firebase (Google или Facebook), я получаю следующее сообщение об ошибке:

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

Почему Firebase маркер истекает через 1 час и как продлить этот срок действия?

UPDATE

Я до сих пор столкнулись с такой проблемой, Firebase маркер истекает через 1 час. Теперь я получаю следующее сообщение: W/PersistentConnection: pc_0 - Authentication failed: invalid_token (Invalid claim 'kid' in auth header.)

Я ценю любую помощь.

+0

Здравствуйте, я использую firebase-auth: 9.0.2, и у меня та же проблема. Вы нашли решение, пожалуйста? – Allan

+0

Вы нашли решение? Я все еще сталкиваюсь с этой проблемой. –

ответ

0

Попробуйте ввести FirebaseInstanceIdService, чтобы получить токен обновления.

Доступ к регистрации маркера:

Вы можете получить доступ значение токена путем расширения FirebaseInstanceIdService. Убедитесь, что вы добавили услугу к вашему manifest, а затем вызвать getToken в контексте onTokenRefresh и войти значение, как показано ниже:

@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.

Код:

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. 
    } 
} 

Я надеюсь, это помогает вам.

+0

Спасибо @pRaNaY, я попробую. Почему это не упоминается в документах Firebase Authentication? Старая консоль Firebase позволила вручную установить срок действия маркера, теперь я больше не могу найти этот параметр. Описанный здесь токен – kandroid

+0

- токен регистрации устройства для FCM - https://firebase.google.com/docs/cloud-messaging/android/client –

+0

Это не токен аутентификации. Это для токена fcm.Оба совершенно разные вещи! – kirtan403

0

Новый максимальный срок службы для токенов Firebase составляет 1 час - я прочитал его в документах ранее сегодня.

Что касается Недействительный иск 'kid' в заголовке заголовка., я получаю ровно 2 результата поиска в Google для этого (: Нет документации, связанной с малышами в документах Firebase. Думаю, нам придется ждать ответов от Google (или, если возможно, вернуться к старой версии Firebase).

2

Если мы используем по умолчанию поставщиков Auth, как (Google, Facebook, электронная почта ..), обновление "SHA-1 ключ" приложения в firebase консоли будет фиксировать маркер истечения проблемы.

в этом discussion Google разработчик поделился с вами руководством для решения этой проблемы.

Руководство пользователя: https://drive.google.com/file/d/0B94LePkXiqa6SXVFd3N1NzJHX1E/view

 Смежные вопросы

  • Нет связанных вопросов^_^