2011-09-16 1 views
0

Я использую open_id_authentication gem для аутентификации в google. В моих сеансах контроллера я звонюRails 3.0.9 + open_id_authentication

authenticate_with_open_id(complete_identity_url, OPENID_OPTS) do |openid_result, identity_url, registration| 

и он возвращает код состояния 401 Не прошедший проверку. Но он должен показывать страницу google, на которой я должен подтвердить доступ.

Я сделал пример приложения: https://github.com/mbashirov/rails3-test, он имеет только код в сеансах контроллера и установленных маршрутов.

Этот код отлично работает на рельсах 2.3 приложения. Есть ошибка?

Спасибо.

Решение.

В контроллере сессий добавить

class SessionsController < ApplicationController 
    include OpenIdAuthentication 

В конфигурации/application.rb добавить

config.app_middleware.use OpenIdAuthentication 

После этих двух шагов, все работает отлично.

ответ

0

Если он работает в версии 2.3 и затем не работает в 3, это звучит как ошибка, которую вы не делаете самостоятельно.

Следующие шаги:

1) Обновление до последней 3.1 (или лучше 3.1.1) Рельсы

2) Связаться с авторами камень, чтобы увидеть, что их 3.1 планы поддержки являются. Возможно, они уже работают над решением, которое вы можете помочь тестировать.

3) Если у вас есть навыки, было бы здорово помочь вам решить проблему.

Я предлагаю вам начать с инструмента для поиска эфира, такого как инструмент Fiddler или Mac, чтобы узнать, отправляет ли ваш компьютер те же запросы/получая те же ответы при запуске 3.1.1 против 2.3.

Затем отладка ....

+0

Спасибо за совет, это действительно помогло мне. – mbashirov