class OmniAuth::Strategies::Huawei

Public Instance Methods

authorize_params() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/huawei.rb, line 17
def authorize_params
  super.tap do |params|
    %w[scope client_options].each do |v|
      if request.params[v]
        params[v.to_sym] = request.params[v]
        # to support omniauth-oauth2's auto csrf protection
        session['omniauth.state'] = params[:state] if v == 'state'
      end
    end
  end
end
raw_info() click to toggle source
# File lib/omniauth/strategies/huawei.rb, line 43
def raw_info
  id_token = access_token.params['id_token']
  # 验证失败会500,成功返回json格式的数据
  @raw_info ||= JWT.decode(id_token, nil, false,
                           verify_iss: true,
                           iss: 'https://accounts.huawei.com',
                           verify_aud: true,
                           aud: options.client_id,
                           verify_expiration: true).first
rescue
  # 本地验证失败后,向华为的服务器发起验证请求,返回json格式的数据
  @raw_info ||= access_token.get("/oauth2/v3/tokeninfo?id_token=#{id_token}").parsed
end
request_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/huawei.rb, line 13
def request_phase
  super
end