2011-07-18 19 views
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 
+0

"crypted_pa​​ssword" DB欄を空白にすることができますか? – Anatoly

答えて

2

私はそれを理解しました。それはいつもREADMEにあった。

UserSession.new(@user、真)//真=永続セッション

関連する問題