У наших клиентов есть две вещи:
- Учетная запись в нашей облачной службе
- Часть аппаратного обеспечения (включая программное обеспечение на нем), которую они только что купили и которая работает на их территории
Теперь я думаю о том, как легко подключить новое оборудование к учетной записи с хорошим пользовательским опытом, используя OAuth2.
Что я предполагаю: оно должно работать аналогично Приложение Spotify на моем AppleTV подключено к моей учетной записи Spotify: шесть случайных символов (например, CX64BY
) отображаются в приложении ApplyTV, и я получил указание от go до spotify.com/pairing
. Я открываю эту страницу в браузере на моем iPhone, помещаю шесть символов в форму и все. Сопряжение выполнено.
Очевидно, вот как это работает в принципе:
- Приложение AppleTV регистрируется как "приложение без учетной записи с кодом CX64BY" на сервере Spotify и хранится в базе данных (возможно, с таймаутом в несколько минут)
- Когда я ввожу код в
spotify.com/pairing
, база данных запрашивается для кода, и, если найдено, приложение привязан к моей учетной записи (технически, поскольку Spotify использует OAuth2, access_token и refresh_token помещаются в приложение AppleTV).
Несмотря на понимание того, как это работает в принципе, может быть много подводных камней. Например, как защитить сервер от DOS, поскольку злоумышленники могут зарегистрировать миллионы «приложений без учетной записи» ?
Поэтому мой вопрос: есть ли хорошая документация такого рабочий процесс / технология (предпочтительно на основе OAuth2)?