|
|
|
@ -22,7 +22,17 @@ module OmniAuth
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
uid { raw_info['openid'].to_s }
|
|
|
|
|
uid do
|
|
|
|
|
@uid ||= begin
|
|
|
|
|
access_token.options[:mode] = :query
|
|
|
|
|
access_token.options[:param_name] = :access_token
|
|
|
|
|
# Response Example: "callback( {\"client_id\":\"11111\",\"openid\":\"000000FFFF\"} );\n"
|
|
|
|
|
response = access_token.get('/oauth2.0/me')
|
|
|
|
|
|
|
|
|
|
matched = response.body.match(/"openid":"(?<openid>\w+)"/)
|
|
|
|
|
matched[:openid]
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
info do
|
|
|
|
|
{
|
|
|
|
@ -36,17 +46,9 @@ module OmniAuth
|
|
|
|
|
{ raw_info: user_info }
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def raw_info
|
|
|
|
|
access_token.options[:mode] = :query
|
|
|
|
|
@raw_info ||= begin
|
|
|
|
|
res = access_token.get('/oauth2.0/me', parse: :text).parsed
|
|
|
|
|
JSON.parse(res.to_s[10..-4])
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def user_info
|
|
|
|
|
access_token.options[:mode] = :query
|
|
|
|
|
params = { oauth_consumer_key: options.client_id, openid: raw_info['openid'], format: 'json' }
|
|
|
|
|
params = { oauth_consumer_key: options.client_id, openid: uid, format: 'json', parse: :json }
|
|
|
|
|
@user_info ||= access_token.get('/user/get_user_info', params: params).parsed
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|