class OmniAuth::Strategies::Wechat
Public Instance Methods
callback_url()
click to toggle source
# File lib/omniauth/strategies/wechat.rb, line 19 def callback_url full_host + script_name + callback_path end
raw_info()
click to toggle source
# File lib/omniauth/strategies/wechat.rb, line 51 def raw_info @uid ||= access_token["openid"] @raw_info ||= begin access_token.options[:mode] = :query if access_token["scope"]&.include?("snsapi_login") access_token.get("/sns/userinfo", :params => { "openid" => @uid, "lang" => "zh_CN" }, parse: :json).parsed else { "openid" => @uid } end end @raw_info end
request_phase()
click to toggle source
# File lib/omniauth/strategies/wechat.rb, line 44 def request_phase params = client.auth_code.authorize_params.merge(authorize_params) params["appid"] = params.delete("client_id") params["redirect_uri"] = callback_url redirect client.authorize_url(params) end
Protected Instance Methods
build_access_token()
click to toggle source
# File lib/omniauth/strategies/wechat.rb, line 65 def build_access_token params = { 'appid' => client.id, 'secret' => client.secret, 'code' => request.params['code'], 'grant_type' => 'authorization_code', 'redirect_uri' => callback_url }.merge(token_params.to_hash(symbolize_keys: true)) client.get_token(params, deep_symbolize(options.auth_token_params)) end