Сохранение регистрационной информации при использовании OAuth
Я начинаю создавать приложение для iOS, которое будет использовать Twitter в качестве средства аутентификации и идентификации пользователей. Я понимаю идею использования ключа Valet / токена доступа, которую предоставляет OAuth, но я не понимаю архитектуру, которую я должен использовать для сохранения состояния, т.е. мне нужно хранить дополнительную информацию, специфичную для пользователя, для функциональности приложения, но как мне это сделать? архитектор проверки достоверности этой информации от пользователя.
Так что, если пользователь входит в приложение на устройстве, должен ли я выполнить аутентификацию на этом устройстве и затем передать токены на мой сервер? Допустимо ли хранить эти токены в my db для дальнейшего использования?
Кроме того, как я должен обращаться с передачей этой информации безопасным способом?
Любые сообщения / доклады, в которых подробно описывается архитектура приложений, будут чрезвычайно полезны.
1 ответ
- Всегда избегайте отправки информации, такой как токены, на сервер. Не делай этого, если не должен. Если вы это сделаете, всегда используйте защищенное (HTTPS) соединение для передачи. Хотя токены сами по себе бесполезны, их можно комбинировать с токенами, которые вы сохранили в коде приложения (потребительские токены), и это дает хакеру практически полный контроль над учетной записью пользователя.
- Если вы не передаете их на сервер, используйте цепочку ключей iOS для хранения токенов.
Нет правила Twitter API, которое говорит, что вы не можете хранить токены, но есть правило, которое не удивляет пользователя. По сути, это означает, что вы не можете отправлять твиты с сервера, поскольку пользователь может этого не ожидать. Если вы выполняете анализ данных для пользователя, это, вероятно, хорошо, но оставляйте его только для чтения и информируйте пользователя с помощью push-уведомления о завершении анализа. Опять же, не делайте ничего, чего пользователь может не ожидать.
При кэшировании информации пользователя: если мы говорим только о псевдониме или полном имени, они действительно меняются не очень часто. Безопасно хранить их в кеше в течение 24 часов. Конечно, не храните сроки так долго. Иногда вам, возможно, придется немного пойти на компромисс - вам, вероятно, понадобятся живые данные, а пользователь хочет сэкономить на аккумуляторе и использовании сети.
Обновление: что больше всего ценят пользователи, так это то, что вы просто используете встроенные функции Twitter, что означает, что им нужно всего лишь нажать кнопку ОК. Никаких серьезных процедур OAuth, и вы сами не получаете контроль над токенами (пользователям это понравится).