Проверка токена Firebase на сервере - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь внедрить систему аутентификации / авторизации с использованием firebase, и я борюсь с последней частью процесса авторизации, которая позволяет моему серверу проверять действительность токена.

Есть это можно сделать двумя способами:

  1. Проверить токен с помощью Admin SDK firebase, где сервер взаимодействует с Firebase и проверяет токен (безопасный параметр)
  2. Проверить токен с помощью сторонняя библиотека JWT.

Мой вопрос связан с вариантом (2), который согласно документации вполне осуществим . Вопрос в том, насколько это безопасно? Все, что включено в процесс проверки токена, публикуется c в соответствии с этим:

Наконец, убедитесь, что ID-токен был подписан секретным ключом, соответствующим заявке токена. Возьмите ключ publi c из https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com и используйте библиотеку JWT для проверки подписи. Используйте

Если токен является publi c, а ключ для его проверки - publi c, кто гарантирует, что токен является подлинным?

Возможно, что-то связано к JWT, которые мне не хватает?

PS. Я уже реализовал вариант (1) с удаленной проверкой, но это существенно повлияет на производительность приложения.

1 Ответ

1 голос
/ 17 апреля 2020

Вы можете проверить действительность токена с помощью ключа publi c, но вы можете только создать токены с приватным key.

Как следует из их названий:

  • Ваш закрытый ключ должен использоваться только в доверенных средах, таких как компьютер разработчика, сервер, которым вы управляете, или облачные функции. Так что это единственные места, где вы можете генерировать токены аутентификации.

  • Ключ publi c, однако, может использоваться совместно с другими, что означает, что они могут использовать его, чтобы убедиться, что токен действителен.

...