omniauth-wechat 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/omniauth/strategies/wechat.rb +23 -13
- data/lib/omniauth/wechat/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Njc1ZDViNzVlNDRmMDcxNjEyMTVmMWNhOTZlMWVlNzExZmUwYWFiZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MjljNDhlMTQzNjYwNTBiODZlNmU4MmJhYmZhMGZkN2U0NWU2NmVkMw==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZTMwZTA5YTdiOGM3Y2Q3Yzk5YmFlMGQyNTU1OTFmZThjYzFmMGRmMjk1ZGU1
|
10
|
+
ZjMzNzgzYzEzNjJlZjc2ZGVmNDkyZGUwYTExMTQ0YmE2OTJmNTVjMmQ4MzYw
|
11
|
+
NzQ1ODQ3OWEwMDc0NzM3MjI0N2M5NWQ4M2MwYWZiZjM1N2Y0NTA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NmI1M2U1OTBjMDkyM2Y0NTZhZjAxNGJmNGRiMmZkYzQwNzg5NDUwZTk0NDZh
|
14
|
+
NDg0OGJlYjRjZTBjNmYwMTkzNDFkZTQyMzRiZmQ1ZTQxZWRlZjIzMDdkMWMz
|
15
|
+
OWNjNzRkN2JiY2VkY2NjYmE0ODY1MWRjMjNjMDBkY2VkN2FhZGI=
|
@@ -9,16 +9,19 @@ module OmniAuth
|
|
9
9
|
:authorize_url => 'https://open.weixin.qq.com/connect/oauth2/authorize',
|
10
10
|
:token_url => "https://api.weixin.qq.com/sns/oauth2/access_token"
|
11
11
|
}
|
12
|
-
option :scope ,'snsapi_base'
|
13
12
|
|
14
13
|
def request_phase
|
15
|
-
redirect client.auth_code.authorize_url(
|
14
|
+
redirect client.auth_code.authorize_url(authorize_params)+'#wechat_redirect'
|
16
15
|
end
|
17
16
|
def authorize_params
|
18
17
|
params = super
|
19
18
|
params[:state]=request.params['state']
|
20
19
|
session['omniauth.state'] = params[:state]
|
21
|
-
|
20
|
+
{:appid=>options.client_id,
|
21
|
+
:redirect_uri => callback_url,
|
22
|
+
:response_type => 'code',
|
23
|
+
:status => params[:state]
|
24
|
+
}
|
22
25
|
end
|
23
26
|
|
24
27
|
def token_params
|
@@ -26,6 +29,14 @@ module OmniAuth
|
|
26
29
|
params.merge({:appid=>options.client_id,:secret=>options.client_secret})
|
27
30
|
end
|
28
31
|
|
32
|
+
def build_access_token
|
33
|
+
client.auth_code.get_token(
|
34
|
+
request.params['code'],
|
35
|
+
{:redirect_uri => callback_url, :parse => :json}.merge(token_params.to_hash(:symbolize_keys => true)),
|
36
|
+
{:mode => :query, :param_name => 'access_token'}
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
29
40
|
uid do
|
30
41
|
@uid ||= begin
|
31
42
|
access_token[:openid]
|
@@ -34,9 +45,9 @@ module OmniAuth
|
|
34
45
|
|
35
46
|
info do
|
36
47
|
{
|
37
|
-
:nickname =>
|
38
|
-
:name =>
|
39
|
-
:image =>
|
48
|
+
:nickname => raw_info[:nickname],
|
49
|
+
:name => raw_info[:nickname],
|
50
|
+
:image => raw_info[:headimgurl],
|
40
51
|
}
|
41
52
|
end
|
42
53
|
|
@@ -48,13 +59,12 @@ module OmniAuth
|
|
48
59
|
|
49
60
|
def raw_info
|
50
61
|
@raw_info ||= begin
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
:
|
56
|
-
|
57
|
-
}, :parse => :json).parsed
|
62
|
+
response = access_token.get(
|
63
|
+
'/sns/userinfo',
|
64
|
+
{:params => {:openid => uid,
|
65
|
+
:lang =>'zh-CN'},
|
66
|
+
:parse => :json}
|
67
|
+
).parsed
|
58
68
|
end
|
59
69
|
end
|
60
70
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-wechat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- victor
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth
|