2010-11-27 12 views
0

私はauthlogicとopenidを正しく動作させており、twitter認証のためにoauthを統合しようとしています。 Implicit user creation with Authlogic and Authlogic OAuth pluginOAuthとOpenIDのAuthlogic - DoubleRenderError

最初の登録とその後のログイン時にDoubleRenderErrorが表示されますが、ページを更新すると処理が正常に完了します。この例では、登録とサインオンの両方のボタンは必要ありません。

マイusers_controllerを作成します。

 
    def create 
     @user = User.new(params[:user]) 
     @user.save do |result| # LINE A 
      if result 
       flash[:notice] = "Account registered!" 
       redirect_to account_url 
      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 account_url   
        else 
         redirect_back_or_default root_path 
        end 
       else 
        redirect_back_or_default root_path 
       end 
      end 
     end 
    end 

そして、私のuser_sessions_controller作成:

 
    def create 
    @user_session = UserSession.new(params[:user_session]) 

    @user_session.save do |result| 
     if result 
     flash[:notice] = "Login successful!" 
     redirect_back_or_default account_url 
     else 
     render :action => :new 
     end 
    end 
    end 

は、これを解決する方法はありますか?私は

さらに
 
    def create 
    @user = User.new(params[:user]) 
    @user.save do |result| # LINE A 
    if result 
    flash[:notice] = "Account registered!" 
    redirect_to account_url and return 
    else 
    if @user.oauth_token 
     @user = User.find_by_oauth_token(@user.oauth_token) 

     UserSession.create(@user) 
     flash.now[:message] = "Welcome back!" 
     redirect_to account_url and return   
     else 
     flash[:notice] = "Something went awry. Perhaps the name or email is already in use." 
     redirect_to register_path and return 
    end 

    end 
    end 
    end 

に興味があったすべてであるおかげ

答えて

0

繰り返し失敗した後、次のように通常のauthlogicユーザー名/パスワードのために働くように見えますが、ツイッターでのOAuthとOpenIDの少なくともGoogleとYahooのために、私は成功と失敗の両方のリダイレクト/レンダリングの後に、ユーザコントローラ内の更新ブロックに 'を追加して返します'

関連する問題