Я задавал различные вопросы о своей проблеме ( здесь и здесь ), а также задавал вопросы в канале #oauth & #openid freenode на IRC.(это вопрос «ВВЕРХ», это другая проблема)
Я подведу итог конфигурации моего проекта: у любого будет возможность создать приложение, которое может использовать мой API.Для начала я поработаю над своим API и веб-приложением, но документация по API будет общедоступной.Это немного похоже на Twitter API.
Проблема, с которой я сталкиваюсь, заключается в том, как я могу быть уверен, какой пользователь использует API (для получения своих личных данных, таких как ваши твиты), даже если пользователь использует приложение, котороеЯ не знаю, кто это делает (опять же, как твиттер и все приложения).
Я много гуглил и с помощью предыдущих ответов я взглянул на OAuth.
Насколько я понял, как работает OAuth, вот как:
- Пользователь посещает приложение, использующее мой API (веб, мобильный и т. Д.)
- Перенаправление приложенийпользователь API для аутентификации (я буду использовать OpenId) и авторизации (OAuth).Это немного странно, так как API будет иметь веб-интерфейс для входа в систему и авторизации (я полагаю, именно так это работает, поскольку Twitter делает это )
- API перенаправляет подключенного пользователяв приложение, с некоторыми жетонами.В этих токенах есть токен, представляющий пользователя, который приложение должно хранить, чтобы указать API, какой пользователь использует его в настоящее время (я прав?)
Пока все идет хорошо,Но что я не могу понять, так это когда пользователь выходит из приложения и снова заходит: как приложение может запомнить пользователя, который использовал его раньше?
(Перед некоторыми из васпринесите мне ответ cookie , я отмечу, что это простой пример, он был бы таким же, если бы пользователь очистил свои куки, отформатировал свой компьютер или изменил свой компьютер.)
Единственное решение, которое я могу найти, - это когда пользователь, не прошедший проверку подлинности (например, без файла cookie), переходит в приложение, приложение снова перенаправляет его в API для аутентификации, но на этот раз пользователю не придетсяповторно разрешить приложение (авторизацию), так как оно уже сделало это.Затем API вернет пользователя в приложение, чтобы позволить ему поиграть с этим.
Это правильный & безопасный способ сделать это?
#OAuthКанал IRC рассказал мне о новом протоколе, WebID, но в настоящее время он находится в режиме предварительного черчения, и я не хочу использовать что-то, что будет постоянно меняться в будущем: /
Большое спасибо за вашпомощь!