Ошибка FirebaseAuthError при использовании Nookies для получения токена. (NextJS)

#javascript #reactjs #cookies #firebase-authentication #next.js

# #javascript #reactjs #файлы cookie #firebase-аутентификация #next.js

Вопрос:

Я пытаюсь проверить, смог ли пользователь успешно завершить регистрацию. Для этого я хочу получить токен пользователя через файлы cookie, как в следующем коде:

 [...]

    export async function getServerSideProps(ctx) {
        try {
            const cookies = nookies.get(ctx)
            console.log(JSON.stringify(cookies, null, 2));
            const token = await firebaseAdmin.auth().verifyIdToken(cookies.token)
    
            const { email } = token
    
            return {
                props: { message: `${email} was successfully registered!`}
            }
        } catch (err) {
            console.log(err)
    
            return { props: { message: 'Error'} }
        }
    }
[...]
 

Эта функция возвращает следующую ошибку:

errorInfo: { code: ‘auth / argument-ошибка’, сообщение: ‘Ошибка декодирования токена идентификатора Firebase. Убедитесь, что вы передали всю строку JWT, которая представляет токен ID. См. https://firebase.google.com/docs/auth/admin/verify-id-tokens для получения подробной информации о том, как получить идентификационный токен.’ }

Я считаю, что я, должно быть, неправильно использую nookies.get(ctx), и я говорю это, потому что полученный файл cookie (токен) равен «», что для меня не имеет особого смысла. Тогда, как я могу правильно использовать nookies для получения этого токена?

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

РЕДАКТИРОВАТЬ: учетная запись пользователя создана, а адрес электронной почты и пароль хранятся в аутентификации Firebase. Не работает только этот фрагмент кода.

Ответ №1:

Начиная со следующего 10.0.4, вы можете получать файлы cookie без nookies

   const cookies = ctx.req.cookies
 

попробуйте таким образом, если вы все еще получаете токен как пустой, проверьте способ установки файлов cookie.