Я разрабатываю простой REST API с Stormpath
интеграцией с Facebook и думаю, какой шаблон лучше всего подходит для аутентификации пользователей. В настоящее время у меня нет конечной точки для создания пользователя, поэтому все запросы к моим конечным точкам аутентифицируются следующим образом:
- Получить объект Stormpath
Application
на основеAPI_ID
иAPI_SECRET
, настроенных в моем приложении - Получить объект Stormpath
Account
на основе токена Facebook, указанного в каждом запросе - На основе статуса учетной записи аутентифицировать запрос или отклонить
Это более или менее соответствует официальному руководству и работает нормально, потому что даже если учетная запись пользователя не существует он будет создан при первом запросе учетной записи на Stormpath. Имеет ли это смысл и достаточно ли безопасно? Я искал документацию или лучшие практики, но ничего не нашел.
Мне также нужно было бы получить/сгенерировать уникальный идентификатор пользователя, чтобы я мог установить некоторые отношения с данными пользователя в моей системе - так что еще один вопрос, какой подход здесь лучше всего:
- Создайте какой-нибудь уникальный идентификатор, свяжите его с электронной почтой пользователя, полученной от Stormpath, и сохраните в моей системе — я думаю, что это немного нарушает идею такой службы, как Stormapth, которая инкапсулирует все пользовательские данные.
- Сделайте то же самое, что и выше, но сохраните его в учетной записи Stormpath
customData
. - Используйте идентификатор пользовательского ресурса Stormapth, который можно получить из пользовательского URI.
Пожалуйста посоветуй.
Просто для протокола: я использую Stormpath Java SDK и разрабатываю API как серверную часть для мобильных устройств. социальное приложение, поэтому безопасность очень важна для меня.