Неявное пользовательское создание с плагином Authlogic и Authlogic OAuth

Autovivification. AFAIK никакой другой язык имеет его .

17
задан eploko 28 February 2015 в 16:23
поделиться

1 ответ

Похоже, я собираюсь ответить на этот вопрос сам.

Я использую следующий код для создания кнопки входа (в HAML):

- form_tag({:controller => "users", :action => "create"}, {:method => "post"}) do
  = oauth_register_button :value => "Sign In with Twitter"

, а затем просто создаю объект сеанса пользователя в методе create класса UsersController, если пользователь уже существует:

def create
  @user = User.new(params[:user])
  @user.save do |result| # LINE A
    if result
      flash[:notice] = "Account registered!"
      redirect_to some_inner_path
    else
      unless @user.oauth_token.nil?
        @user = User.find_by_oauth_token(@user.oauth_token)
        unless @user.nil?
          UserSession.create(@user)
          flash.now[:message] = "Welcome back!"
          redirect_to some_inner_path        
        else
          redirect_back_or_default root_path
        end
      else
        redirect_back_or_default root_path
      end
    end
  end
end

Если пользователь является первым посетителем, то объект пользователя успешно сохраняется в СТРОКЕ A. И если это не так, и существует oauth доступный токен, затем мы пытаемся получить пользователя из БД и войти в систему.

12
ответ дан 30 November 2019 в 14:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: