Получение информации о пользователе с помощью openid - PullRequest
1 голос
/ 16 июля 2010

Я использую плагин open_id_authentication для входа в систему. Я могу правильно интегрировать плагин, и он работает хорошо. Я хотел бы получить дополнительные значения, такие как псевдоним и адрес электронной почты пользователя, которые я не могу получить. Я использую следующий код, но поля регистрации пусты. Я правильно здесь что-то делаю?

def authenticate_with_open_id(identity_url,
              :required => [ :nickname, :email ],
              :optional => :fullname) do |result, identity_url, registration|
            case result.status
            when :missing
              failed_login "Sorry, the OpenID server couldn't be found"
            when :invalid
              failed_login "Sorry, but this does not appear to be a valid OpenID"
            when :canceled
              failed_login "OpenID verification was canceled"
            when :failed
              failed_login "Sorry, the OpenID verification failed"
            when :successful
              if @current_user = User.find_by_openid_identifier(identity_url)
                assign_registration_attributes!(registration)

                if @current_user.save
                  successful_login
                else
                  failed_login "Your OpenID profile registration failed: " +
                  @current_user.errors.full_messages.to_sentence
                end
              else
                @current_user = User.new
                #@current_user.email = registration[:email]
                logger.info(registration)
                if registration.empty?
                  logger.info("reg empty")
                else
                  logger.info("reg not empty")
                end
                #assign_registration_attributes!(registration)
                #failed_login(@current_user)
              end
            end
          end

1 Ответ

1 голос
/ 16 июля 2010

Фрагмент кода, который вы показали из документации этого плагина, довольно старый по стандартам Rails. Неясно, будет ли этот плагин или подход все еще работать, учитывая его возраст и отсутствие очевидной текущей поддержки и принятия.

Несмотря на то, что вы не совсем отвечаете на вопрос, если вы хотите рассмотреть более поддерживаемый подход, вы можете взглянуть на Authlogic (последняя важная вещь в аутентификации Rails).

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

Взгляните на учебник здесь и не пропустите этот эпизод из несравненной Railscast серии. Я обнаружил, что Authlogic для просто работает со всем, что я пробовал.

...