Class: OmniAuth::Strategies::Renren::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/omniauth_china/strategies/renren/session.rb

Defined Under Namespace

Classes: IncorrectSignature, OtherException, SessionExpired

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cookies) ⇒ Session

Returns a new instance of Session.



16
17
18
19
20
21
# File 'lib/omniauth_china/strategies/renren/session.rb', line 16

def initialize(cookies)
  options = extract_renren_cookies(cookies)
  @expires = options['expires'] ? Integer(options['expires']) : 0
  @session_key = options['session_key']
  @uid = options['user']
end

Instance Attribute Details

#expiresObject (readonly)

Returns the value of attribute expires.



13
14
15
# File 'lib/omniauth_china/strategies/renren/session.rb', line 13

def expires
  @expires
end

#session_keyObject (readonly)

Returns the value of attribute session_key.



12
13
14
# File 'lib/omniauth_china/strategies/renren/session.rb', line 12

def session_key
  @session_key
end

#uidObject (readonly)

Returns the value of attribute uid.



14
15
16
# File 'lib/omniauth_china/strategies/renren/session.rb', line 14

def uid
  @uid
end

Instance Method Details

#expired?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/omniauth_china/strategies/renren/session.rb', line 31

def expired?
  @expires.nil? || (!infinite? && Time.at(@expires) <= Time.now)
end

#infinite?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/omniauth_china/strategies/renren/session.rb', line 27

def infinite?
  @expires == 0
end

#invoke_method(method, params = {}) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/omniauth_china/strategies/renren/session.rb', line 39

def invoke_method(method, params = {})
  xn_params = {
    :method => method,
    :api_key => Renren.api_key,
    :session_key => session_key,
    :call_id => Time.now.to_i,
    :v => '1.0',
    :format => :json
  }
  xn_params.merge!(params) if params
  xn_params.merge!(:sig => compute_sig(xn_params))
  MultiJson.decode(Service.new.post(xn_params).body)
end

#secured?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/omniauth_china/strategies/renren/session.rb', line 35

def secured?
  !@session_key.nil? && !expired?
end

#userObject



23
24
25
# File 'lib/omniauth_china/strategies/renren/session.rb', line 23

def user
  @user ||= invoke_method('users.getInfo', :uids => @uid, :format => :json).first
end