2
FacebookのOAuthを既存のAuthlogicログインシステムに構築しようとしています。私はOAuthの部分を完成させ、facebookのaccess_tokenを保存しました。私が直面している問題は、ユーザーがパスワードを入力しなくても、実際にユーザーをログインさせる(セッションを作成する)ことです。Authlogicパスワードなしで新しいセッションを作成する
#facebook's OAuth callback
def callback
access_token = client.web_server.get_access_token(params[:code], :redirect_uri => redirect_uri)
fb_user = JSON.parse(access_token.get('/me'))
@user = User.find_by_facebook_id(fb_user["id"]) || User.find_by_email(fb_user["email"]) || User.new
@user.update_attributes({
:facebook_id => fb_user["id"],
:first_name => fb_user["first_name"],
:last_name => fb_user["last_name"],
:gender => fb_user["gender"],
:email => fb_user["email"],
:timezone => fb_user["timezone"],
:locale => fb_user["locale"],
:facebook_url => fb_user["link"],
:facebook_access_token => access_token.token
}) #unless @user.updated_at < 2.days.ago
# TODO: set current_user
# Maybe something like this?
# @user_session = UserSession.new({
# :remember_me => true,
# :password =>"[FILTERED]",
# :email => email
# }).save
flash[:success] = "Welcome, #{@user.name}"
redirect_to :root
end
"crypted_password" DB欄を空白にすることができますか? – Anatoly