暗黙的なユーザー作成とAuthlogicとAuthlogic OAuthによるプラグイン
-
19-09-2019 - |
質問
ようにしている書簡単なOAuthによる消費者のアプリにします。を使用していAuthlogicの取り扱いの認証をAuthlogic OAuthによるプラグインのoauthによるものです。
のoauthによるプラグインが提供しカップルでのヘルパーを描画するためにサインインボタン:oauth_login_buttonとoauth_register_button.とともにAuthlogicロジックのプラグインの依頼ィこの二つのボタンが何らかのセッション/ユーザーです。
その後は-を用いてoauth_login_buttonヘルパー、その後のセッションオブジェクトに失敗したとして保存がないといユーザます。-を用いてoauth_register_buttonヘルパー、その後、ログイン後のレールの苦情のトークンがすでに...そしたらストーリー作品やろうかな創造のためのコピーを同じユーザである。
の問題:ならないようにしたいの両方の登録およびログインボタン自分のサイトです。
ユーザーの側に何を残したいが単一のボタンをスタートページに、"三井住友信託銀行株式.のような業界標準の暗号化通信であるsslをTwitter"は、ユーザーをクリックに進む内部のページのサイトです。
サーバ側では、たい暗黙的に作成、地域ユーザーアカウントの場合、ユーザーが初来所の方は私のサイトです。
なかるのか?
すべてのサンプルAuthlogic+OAuthいを見つけることができました。いなかったのでしょうかケアについて単一のボタンサインインします。:(
解決
そうかとの問いに答える。
使うには、次のコードを生成し、サインインボタン(HAML):
- form_tag({:controller => "users", :action => "create"}, {:method => "post"}) do
= oauth_register_button :value => "Sign In with Twitter"
そんなユーザーのセッションオブジェクトの作成方法の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によるトークンをご用意してみてを取得するユーザーのDBからログイン人。