2

我正在使用 Janrain 在我的 Ruby on Rails 应用程序中处理用户会话。它似乎正在工作,但是,我不知道如何判断用户是否登录或访问当前用户的信息。用户登录后,是否创建了会话变量?

4

2 回答 2

1

假设您指的是 Janrain 社交登录(参与),一旦用户通过社交提供者进行身份验证,小部件就会获得一个有效期为 60 分钟的 Janrain OAuth 令牌。您可以使用该令牌通过此 API 端点检索用户的个人资料数据:(https://{your-engage-domain.com}/api/v2/auth_info)。

Janrain Social Login 不维护任何与登录状态相关的会话数据。它只是简化了身份验证并规范了从多个身份验证提供程序检索用户配置文件数据。一旦成功的身份验证事件发生,由您的服务器来验证身份验证令牌,然后建立任何形式的授权会话相关工作。

大多数社交提供者返回有效期为 30-60 天的访问令牌。

于 2014-12-24T18:45:40.150 回答
0

尝试 'current_user' 变量,它适用于大多数 Rails 身份验证库,例如:

#in the erb file: 
<% current_user = session[:user_id] %>

# or in the rb file: 
class MusicController < ApplicationController
  before_filter :authenticate_user! # just like devise

  def index
    # same methods and api as devise.
    return if signed_in? and current_user.email
  end
end

# put this method in application_controller.rb
def current_user
  @current_user ||= User.find_by_id(session[:user_id])
end

更多细节参考这个例子:https ://github.com/hatem/janrain-engage-demo

于 2012-09-02T01:05:47.050 回答