Firebase не проверяет IdToken - PullRequest
       26

Firebase не проверяет IdToken

0 голосов
/ 11 февраля 2020

Когда бэкэнд вызывается путем передачи idToken, используемого на клиенте (Web, Android и почтальон), возникает исключение:

{
    "timestamp": 1581447909769,
    "status": 401,
    "error": "Unauthorized",
    "message": "Authentication Failed: com.google.firebase.auth.FirebaseAuthException: Firebase ID token has expired or is not yet valid. Get a fresh ID token and try again. See https://firebase.google.com/docs/auth/admin/verify-id-tokens for details on how to retrieve an ID token.",
    "path": "/api/references"
}

Бэкэнд может получить доступ к ресурсам firebase , например:

FirebaseAuth.getInstance().getUser("SOME_ID")

Ошибка возникает только при проверке токена:

FirebaseAuth.getInstance().verifyIdToken(authenticationToken.getToken());

Настройки:

  @Bean
    public FirebaseAuth firebaseAuth() throws IOException {

        InputStream inputStream = FirebaseAuthConfig.class.getClassLoader().getResourceAsStream("solicite-service-auth.json");

        FirebaseOptions options = new FirebaseOptions.Builder()
                .setCredentials(GoogleCredentials.fromStream(inputStream))
                .setDatabaseUrl("https://my-project-auth.firebaseio.com")
                .build();

        FirebaseApp.initializeApp(options);
        return FirebaseAuth.getInstance();
    }



        <dependency>
            <groupId>com.google.firebase</groupId>
            <artifactId>firebase-admin</artifactId>
            <version>6.12.1</version>
        </dependency>

jwt.io

{
  "iss": "https://securetoken.google.com/my-project-auth",
  "aud": "my-project-auth",
  "auth_time": 1581453521,
  "user_id": "SOME_USER_ID",
  "sub": "SOME_USER_ID",
  "iat": 1581453521,
  "exp": 1581457121,
  "email": "teste@teste.com",
  "email_verified": false,
  "firebase": {
    "identities": {
      "email": [
        "teste@teste.com"
      ]
    },
    "sign_in_provider": "password"
  }
}

Я уже удалил и заново создал учетную запись службы и проекты. Поскольку я могу получить доступ к Firebase через SDK, я считаю, что он правильно настроен.

Аутентификация работала несколько месяцев go.

...