# #firebase #oauth-2.0 #firebase-authentication
Вопрос:
Я просто создаю сервис REST API (и за кулисами использую Firebase DB в качестве своей базы данных). И для аутентификации моего API я подумал, что могу использовать аутентификацию Firebase.
- Создать /Зарегистрироваться или /Войти —> Возвращает токен
- Используйте этот токен для аутентификации всех других API
Но я не могу найти, как это сделать с firebase. Большинство решений говорят о пользовательских и IDtokens и требуют «клиентского пакета Firebase SDK». Это означает, что на стороне клиента я напрямую аутентифицируюсь в firebase, чего я не хочу делать. Что я упускаю?
Ответ №1:
Вы можете использовать sdk администратора для создания маркеров идентификаторов для возврата клиенту или использовать их внутри компании с помощью желаемых средств. Просто убедитесь, что вы предварительно проверили и подтвердили своих пользователей, так как для этого процесса требуется только идентификатор пользователя для создания нового.
const uid = 'some-uid';
admin
.auth()
.createCustomToken(uid)
.then((customToken) => {
// Send token back to client
})
.catch((error) => {
console.log('Error creating custom token:', error);
});
Комментарии:
1. Но здесь клиенту придется использовать ClientSDK и проверять customToken на стороне клиента. Моя идея-абстрактная база огня на стороне клиента.
2. это не нужно клиенту. он используется только для проверки дальнейших запросов — если вам нужно декодировать информацию, такую как пользовательские утверждения и другие пользовательские данные, вы можете создать API для ее декодирования на стороне сервера (рискованно) или попробовать декодировать ее на клиенте с помощью декодера JWT jwt.io
3. Но у этого знака короткая жизнь. Это не похоже на аутентификацию, срок действия токена истекает примерно через 1 час. Итак, для каждого сеанса мне придется снова входить в систему на стороне клиента и повторно создавать новый пользовательский токен, верно?
4. Правильно, иначе ваши клиенты могут быть обмануты, если этот ключ просочится, я слышал, что вы можете установить его на срок действия, но я не рекомендую этого делать по нескольким причинам. все, что вам нужно сделать, это запрашивать и проверять пользователя каждые 1 час, это довольно стандартно для большинства служб REST API.