SSR Firebase Auth и Nuxt JS выдает auth FirebaseAuthError - PullRequest
0 голосов
/ 27 мая 2020

Я получаю следующую ошибку:

    FirebaseAuthError: Firebase ID token has incorrect "aud" (audience) claim. Expected "a" but got "b". Make sure the ID token comes from the same Firebase project as the service account used to authenticate this SDK. See https://firebase.google.com/docs/auth/admin/verify-id-tokens for details on how to retrieve an ID token.
    at FirebaseAuthError.FirebaseError [as constructor] (/Users/bla/node_modules/firebase-admin/lib/utils/error.js:42:28)
    at FirebaseAuthError.PrefixedFirebaseError [as constructor] (/Users/bla/node_modules/firebase-admin/lib/utils/error.js:88:28)
    at new FirebaseAuthError (/Users/bla/node_modules/firebase-admin/lib/utils/error.js:147:16)
    at FirebaseTokenVerifier.verifyJWTWithProjectId (/Users/bla/node_modules/firebase-admin/lib/auth/token-verifier.js:166:35)
    at /Users/bla/node_modules/firebase-admin/lib/auth/token-verifier.js:102:26 {
  errorInfo: {
    code: 'auth/argument-error',
    message: 'Firebase ID token has incorrect "aud" (audience) claim. Expected "a but got "b". Make sure the ID token comes from the same Firebase project as the service account used to authenticate this SDK. See https://firebase.google.com/docs/auth/admin/verify-id-tokens for details on how to retrieve an ID token.'
  },
  codePrefix: 'auth'
}

Однако ошибка появляется только на стороне сервера. При входе в систему на стороне клиента, кажется, что "aud" показывает правильное значение: enter image description here

Код следует примеру из nuxt Js (https://firebase.nuxtjs.org/guide/options/#auth ):

async nuxtServerInit ({ dispatch }, { res }) {
    console.log('from Init', res.locals, res.locals.user)
    if (res && res.locals && res.locals.user) {
      const { allClaims: claims, ...authUser } = res.locals.user
      console.info(
        'Auth User verified on server-side. User: ',
        authUser,
        'Claims:',
        claims
      )

      await dispatch('onAuthStateChanged', {
        authUser,
        claims
      })
    }

Итак, где мне изменить требование аудитории на стороне сервера?

...