Достаточно ли хорош мой поток для защиты REST API?

Я новичок в веб-разработке. Я хочу написать бэкэнд для своей игры и аутентифицировать его с помощью Facebook. Я не уверен, что мои мысли верны и достаточно безопасны. Конечно, https просто необходим.

  1. Пользователь каждый раз, когда запускается приложение, отправляет / инициализирует запрос с идентификатором пользователя и токеном fb.
  2. Сервер проверяет, действительны ли этот идентификатор пользователя и токен, отправляя запрос к fb api.
  3. Если все в порядке, сервер проверьте пользователя в базе данных.
  4. Если пользователь не существует, сгенерируйте токен, используя секрет приложения, токен fb, идентификатор fb и текущую дату / время, сохраните его в базе данных и отправьте клиенту. ИЛИ Если пользователь с этим идентификатором fb существует, отправьте пользователю ранее сгенерированный токен, хранящийся в базе данных.
  5. Клиент обменивается данными с API, используя этот токен.

Если этот подход верен, у меня мало вопросов. Безопасна ли отправка идентификатора пользователя и токена каждый раз, когда пользователь запускает приложение? Я хочу использовать токен и идентификатор пользователя с помощью fb каждый раз, когда он использует запрос / init из-за того, что токены доступа fb не работают более 60 дней. Это правильный подход? Теперь, если у пользователя есть токен для доступа к моему API. Должен ли я каждый раз, когда он делает запрос, выполнять его, обращаясь к базе данных? Разве это не медленно / дорого?

Я думаю, вы ищете OpenID Connect. Вы должны прочитать этот протокол. Он идеально соответствует вашим потребностям, поэтому вы можете без труда применить его. Я не знаю вашего стека разработки, но рекомендую IdentifyServer (для .NET).

Maxime Gélinas 24.08.2018 04:22

Спасибо за ответ. Я обязательно посмотрю OpenID.

Artur Czapiewski 24.08.2018 14:38
Почему Facebook остановился на PHP
Почему Facebook остановился на PHP
PHP имеет долгую историю с Facebook, и это был основной язык программирования, использовавшийся для создания сайта в первые годы его существования....
0
2
25
0

Другие вопросы по теме