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(user_hash) ⇒ Session

Returns a new instance of Session.



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

def initialize(user_hash)
  @expires = user_hash['renren_token']['expires_in'] ? user_hash['renren_token']['expires_in'].to_i : 0
  @session_key = user_hash['renren_token']['session_key']
  @uid = user_hash['user']['id']
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)


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

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

#infinite?Boolean

Returns:

  • (Boolean)


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

def infinite?
  @expires == 0
end

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



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

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)


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

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

#userObject



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

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