FacebookとTwitterで複数のログインを提供するために、現在のデバイスシステムに認証コントローラーを追加しようとしています。そのために、私はこのチュートリアルに従っています: http://railscasts.com/episodes/236-omniauth-part-2
私の問題は、まだ登録していない人が、twitter に登録しようとしていることです。そのため、ユーザーと認証の両方を作成する必要があります。
私のコードは次のとおりです。
user = User.new
token = omni['credentials'].token
token_secret = omni['credentials'].secret
user.provider = omni.provider
user.uid = omni.uid
user.authentications.build(:provider => omni['provider'], :uid => omni['uid'], :token => token, :token_secret => token_secret)
if user.save
flash[:notice] = "Logged in."
sign_in_and_redirect(:user, user)
else
session["devise.user_attributes"] = user.attributes
redirect_to new_user_registration_path
end
したがって、登録プロセスの最後に、新しいユーザーが作成されます。ただし、データベースには、そのユーザーに関する Twitter 認証レコードはありません。
それは user.authentications.build によるものですか?
あなたが私を助けることができれば、それは素晴らしいことです.
ありがとう。