【问题标题】:Authlogic Create new session without passwordAuthlogic 创建没有密码的新会话
【发布时间】:2011-07-20 08:44:22
【问题描述】:

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

  #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_pa​​ssword" db 列可以为空吗?

标签: ruby-on-rails ruby-on-rails-3 facebook authlogic


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-05-25
    • 2015-10-04
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 2011-01-03
    • 2012-08-12
    • 1970-01-01
    相关资源
    最近更新 更多