#ruby-on-rails #ruby #ruby-on-rails-3 #oauth #oauth-2.0
#ruby-on-rails #ruby #ruby-on-rails-3 #oauth #oauth-2.0
Вопрос:
Я использую Ruby oauth-плагин (версия 0.4.0.pre7), чтобы сделать мое приложение Rails (3.0.3) поставщиком oauth. Установка прошла нормально, и я думаю, что аспект поставщика также работает нормально. Однако я застрял на этапе авторизации.
Вот что я делаю после установки:
- Создайте клиент oauth
@consumer = OAuth::Consumer.new "consumer_key", "consumer_secret", {:site => "http://localhost:3000"}
@request_token = @consumer.get_request_token
@request_token.authorize_url
- Вставьте URL, который он возвращает, в мой браузер.
Я получаю сообщение об ошибке: «неправильное количество аргументов (0 вместо 2)»
Из кода я вижу, что запрос ищет это:
SELECT `oauth_tokens`.* FROM `oauth_tokens` WHERE (`oauth_tokens`.`type` = 'Oauth2Token') AND (invalidated_at IS NULL AND authorized_at IS NOT NULL and token = 'XXXTOKENXXX') LIMIT 1
Похоже, проблема в том, что он ищет ‘Oauth2Token’, но при проверке моей базы данных все запросы создают ‘RequestToken’.
Я пропустил какой-то шаг в процессе подключения к авторизации? У меня что-то настроено неправильно? Похоже, что каким-то образом существует некоторый конфликт между версиями Oauth (например, запрос генерируется для 1.0, а аутентификация использует 2.0).
Есть идеи?
ОБНОВЛЕНИЕ: Я следовал этому руководству:http://unhandledexpression.com/2011/06/02/rails-and-oauth-plugin-part-1-the-provider /, и там была опечатка. Другой пользователь был достаточно любезен, чтобы опубликовать исправление в комментариях, но автор так и не обновил руководство.
Для справки, проблемы были alias :login_required :authenticate_user
должны были быть alias :login_required :authenticate_user!
Комментарии:
1. На самом деле, я обновил руководство. Спасибо, что использовали его 🙂
Ответ №1:
Автор любезно обновил плагин:
http://unhandledexpression.com/2011/06/02/rails-and-oauth-plugin-part-1-the-provider/
Спасибо!