페이스 북 및 트위터에 다중 로그인을 제공하기 위해 현재의 시스템에서 인증 컨트롤러를 추가하려고합니다. 이렇게하려면이 자습서를 따르십시오. http://railscasts.com/episodes/236-omniauth-part-2레일즈 - 빌드가 데이터베이스에 레코드를 생성하지 않습니다.
아직 등록하지 않은 사람이 트위터에 등록하려고하면 내 문제가 생깁니다. 그래서 사용자와 인증을 모두 만들어야합니다.
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
그래서 등록 과정의 끝에, 새 사용자가 생성됩니다 :
내 코드는 다음과 같다. 그러나 데이터베이스에서는 해당 사용자와 관련하여 트위터 인증 레코드가 표시되지 않습니다.
user.authentications.build 때문에 그런가요?
나를 도울 수 있다면 좋을 것입니다.
감사합니다.
기본적으로 등록 컨트롤러 외에도 create를 사용하고 있습니다! 빌드 대신? – CanCeylan
수정. Jesse가 아래에서 언급했듯이 빌드와 생성의 차이점은 무엇입니까? – Chris
네, 정말 고마워요. 그리고 업데이트 보석으로 프로세스의 모든과 자습서를 쓰고 레일 버전 : http://www.orhancanceylan.com/rails-twitter-and-facebook-authentications-with-omniauth-and-devise/은 아니, 추가 – CanCeylan