Rails 3.1 Разработайте Oauth для путаницы с маршрутизацией Facebook

После следующего:

https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview

Я могу зарегистрировать пользователя через Facebook. Но я изо всех сил пытаюсь определить свои собственные перенаправления.

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

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def facebook
    # You need to implement the method below in your model
    @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)

    if @user.persisted?
      flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
      sign_in_and_redirect @user, :event => :authentication
    else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end
end

Что делает пользователь .стали значит? find_for_facebook_oauth делает то же, что и на вики-странице разработки; т.е. находит пользователя по электронной почте и возвращает его, если он существует, или создает нового пользователя с паролем автогенерации, если нет.

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

У меня есть такой экран для людей, которые принимают приглашения (через https://github.com/scambra/devise_invitable/ ), который находится в views / devise / invitations / edit - что было бы идеально подходит для этого, если будет работать.

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

Очевидно, запутано, поэтому помощь приветствуется. :)

Спасибо,

Дэйв

5
задан Dave 9 February 2012 в 13:16
поделиться