#firebase-authentication
#firebase-аутентификация
Вопрос:
У меня есть этот код, в котором я создаю учетную запись пользователя с аутентификацией Firebase:
export default function Account() {
const [user, loading, error] = useAuthState(getAuth())
return (
<Layout>
<Box sx={{ mt: "3rem" }}>
<Typography variant="h2">Welcome {user.displayName}!</Typography>
</Box>
</Layout>
)
}
Если я включу эту же модель для каждой страницы NextJS, будет ли вызов серверной части Firebase выполняться каждый раз с getAuth()
помощью?
Ответ №1:
Это зависит, но по умолчанию getAuth
не будет вызывать вашего поставщика удостоверений (IdP), если app
экземпляр не предоставлен. Однако это еще не все.
Например, если вы используете getAuth(yourApp).verifyIdTokens(yourToken)
, firebase-admin-sdk
будет декодировать ваш JWT только на вашем сервере, используя кэшированный криптографический ключ. Если ключ действителен, но на самом деле он был отозван из IdP, обещание все равно возвращает действительный результат. Если вы добавите verifyIdToken(yourToken, true)
, то на этом этапе ваш серверный сервер выполнит вызов IdP, чтобы проверить, действителен ли токен в действительности. Если нет, возникает ошибка.
Для получения дополнительной информации вы можете прочитать официальный документ, касающийся этого.