Я использую плагин 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!