Authlogic创建没有密码的新会话 [英] Authlogic Create new session without password

查看:81
本文介绍了Authlogic创建没有密码的新会话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将Facebook OAuth构建到我现有的Authlogic登录系统中.我的OAuth部分已完成,并存储了Facebook access_token.我面临的问题是,实际上是在用户不输入密码的情况下登录用户(创建会话).

I'm trying to build Facebook OAuth into my existing Authlogic login system. I have the OAuth part complete, and stored the facebook access_token. The problem I'm facing is to actually log the user in (create a session) without the user typing in their password.

  #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  

推荐答案

没关系,我想通了.一直在自述文件中.

Nevermind I figured it out. It was in the README the whole time.

UserSession.new(@user,true)//true =持久会话

UserSession.new(@user, true) //true = persistent session

这篇关于Authlogic创建没有密码的新会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆