Как сгенерировать клиентский ключ и секрет для регистрации приложения на моем сайте и как использовать OAuth для реализации провайдера - PullRequest
6 голосов
/ 20 октября 2011

Привет, у меня есть приложение rails, и я хочу создать API для него. Я никогда не работал над созданием API до сих пор.Поэтому, пожалуйста, скажите мне, откуда я должен начать создавать API.Я хочу сделать его общедоступным, чтобы разработчики могли создавать приложения, используя мой API.У меня на уме два вопроса

  1. Как мне сгенерировать и назначить ключ приложения и секрет приложения для приложения
  2. Я знаю, что для безопасностиДоступ к API Я должен использовать OAuth.
  3. Я прочитал следующие ссылки и руководства, но не понимаю, как это реализовать.

Я попытался запустить демонстрацию на здесь , но работает только часть, но я не могу запустить клиентскую часть.

Пожалуйста, помогите мне подробно изучить этот материал.Заранее спасибо ...!

1 Ответ

3 голосов
/ 03 апреля 2017

Прошло много времени с тех пор, как был задан этот вопрос, и с тех пор было создано много замечательных ресурсов, которые я кратко опишу и сошлюсь на ссылку ниже.

Добавление функциональности поставщика OAuth 2

Gem Doorkeeper позволяет реализовать функциональность поставщика OAuth, и хорошо документировано и в хорошем состоянии. Он хорошо интегрируется с Devise , и есть примеры приложений для изучения.

На стороне клиента (для тестирования интеграции или если вы хотите предоставить клиент Ruby для внешних разработчиков), вы можете использовать OmniAuth , и документы Doorkeeper проведут вас через процесс создание собственной стратегии .

Вам может не понадобиться OAuth?

В зависимости от того, какой тип API вы создаете, вы можете обнаружить, что OAuth является излишним. OAuth полезен в тех случаях, когда вы являетесь поставщиком контента, а разработчик является третьей стороной , которая хочет получить доступ к информации от имени пользователя , но без необходимости знать его пароль.

Если ваш вариант использования более прост (например, вы можете предоставить секретный токен и ключ непосредственно пользователю API), тогда генерации и проверки токенов доступа может быть достаточно. В этом случае вы генерируете ключ (используя SecureRandom.urlsafe_base64 или has_secure_token, если вы находитесь на Rails 5) и сохраняете его. Пользователь API предоставляет этот токен при каждом запросе для аутентификации, и вы можете повторно создать токен, если оригинал когда-либо будет скомпрометирован.

Более подробная информация об этом здесь и здесь .

...