Class: OmniAuth::Strategies::IAuth

Inherits:
Object
  • Object
show all
Includes:
OmniAuth::Strategy
Defined in:
lib/omniauth/strategies/iauth.rb

Defined Under Namespace

Classes: CallbackError

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#access_tokenObject (readonly)

Returns the value of attribute access_token.



19
20
21
# File 'lib/omniauth/strategies/iauth.rb', line 19

def access_token
  @access_token
end

Instance Method Details

#callback_phaseObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/omniauth/strategies/iauth.rb', line 27

def callback_phase
  operate = request.params['operate']
  verifier = request.params['verifier']
  state = request.params['state']
  fail!(:invalid_request, CallbackError.new(:invalid_request)) unless state == session['omniauth.state']
  iauth = ::IAuth.new options.app_id, options.app_secret
  if operate == 'login'
    c = iauth. verifier, state
  elsif operate == 'auth'
    c = iauth.auth verifier, state
  else
    fail!(:invalid_request, CallbackError.new(:invalid_request))
  end
  options.uid = c['uid']
  options.access_token = c['access_token']
  options.access_secret = c['access_secret']
  super
rescue ::Timeout::Error => e
  fail!(:timeout, e)
rescue ::Net::HTTPFatalError, ::OpenSSL::SSL::SSLError => e
  fail!(:service_unavailable, e)
rescue ::MultiJson::DecodeError => e
  fail!(:invalid_response, e)
rescue ::OmniAuth::NoSessionError => e
  fail!(:session_expired, e)
end

#request_phaseObject



21
22
23
24
25
# File 'lib/omniauth/strategies/iauth.rb', line 21

def request_phase
  state = options.authorize_params[:state] = SecureRandom.hex(8)
  session['omniauth.state'] = state
  redirect "http://i.buaa.edu.cn/plugin/iauth/login.php?appid=#{options.app_id}&state=#{state}"
end