@@ -22,9 +22,12 @@ isoweek==1.3.1 |
||
22 | 22 |
kkconst==1.1.3 |
23 | 23 |
mock==2.0.0 |
24 | 24 |
pep8==1.7.0 |
25 |
+pywe-oauth==1.0.1 |
|
26 |
+pywe-utils==1.0.0 |
|
25 | 27 |
records==0.4.3 |
26 | 28 |
redis==2.10.5 |
27 |
-redis-extensions==1.0.22 |
|
29 |
+redis-extensions==1.0.23 |
|
30 |
+requests==2.12.1 |
|
28 | 31 |
rlog==0.2 |
29 | 32 |
shortuuid==0.4.3 |
30 | 33 |
uWSGI==2.0.14 |
@@ -1,20 +1,17 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 | 3 |
import time |
4 |
-import urllib |
|
5 | 4 |
|
6 |
-import requests |
|
7 | 5 |
import shortuuid |
8 | 6 |
from django.conf import settings |
9 | 7 |
from django.shortcuts import redirect |
10 | 8 |
from furl import furl |
11 | 9 |
from json_response import auto_response |
10 |
+from pywe_oauth import get_access_info, get_oauth_code_url, get_userinfo |
|
12 | 11 |
from wechatpy import WeChatClient |
13 | 12 |
|
14 | 13 |
|
15 |
-r = settings.REDIS_CACHE |
|
16 |
-WECHAT = settings.WECHAT |
|
17 |
-JSAPI = WECHAT.get('JSAPI', {}) |
|
14 |
+JSAPI = settings.WECHAT.get('JSAPI', {}) |
|
18 | 15 |
|
19 | 16 |
|
20 | 17 |
def wx_oauth2(request): |
@@ -22,15 +19,9 @@ def wx_oauth2(request): |
||
22 | 19 |
redirect_url = request.GET.get('redirect_url', '') |
23 | 20 |
default_url = request.GET.get('default_url', '') |
24 | 21 |
|
25 |
- redirect_uri = settings.WECHAT_USERINFO_REDIRECT_URI if scope == 'snsapi_userinfo' else settings.WECHAT_BASE_REDIRECT_URI |
|
26 |
- |
|
27 | 22 |
if request.weixin: |
28 |
- return redirect(settings.WECHAT_OAUTH2_AUTHORIZE.format( |
|
29 |
- appid=JSAPI['appID'], |
|
30 |
- redirect_uri=urllib.quote_plus(redirect_uri), |
|
31 |
- scope=scope, |
|
32 |
- state=urllib.quote_plus(redirect_url) |
|
33 |
- )) |
|
23 |
+ redirect_uri = settings.WECHAT_USERINFO_REDIRECT_URI if scope == 'snsapi_userinfo' else settings.WECHAT_BASE_REDIRECT_URI |
|
24 |
+ return redirect(get_oauth_code_url(JSAPI['appID'], redirect_uri, scope, redirect_url)) |
|
34 | 25 |
|
35 | 26 |
return redirect(default_url or redirect_url) |
36 | 27 |
|
@@ -39,11 +30,7 @@ def base_redirect(request): |
||
39 | 30 |
code = request.GET.get('code', '') |
40 | 31 |
state = request.GET.get('state', '') |
41 | 32 |
|
42 |
- access_info = requests.get(settings.WECHAT_OAUTH2_ACCESS_TOKEN.format( |
|
43 |
- appid=JSAPI['appID'], |
|
44 |
- secret=JSAPI['appsecret'], |
|
45 |
- code=code |
|
46 |
- ), verify=False).json() |
|
33 |
+ access_info = get_access_info(JSAPI['appID'], JSAPI['appsecret'], code) |
|
47 | 34 |
|
48 | 35 |
return redirect(furl(state).add(access_info).url) |
49 | 36 |
|
@@ -52,19 +39,8 @@ def userinfo_redirect(request): |
||
52 | 39 |
code = request.GET.get('code', '') |
53 | 40 |
state = request.GET.get('state', '') |
54 | 41 |
|
55 |
- access_info = requests.get(settings.WECHAT_OAUTH2_ACCESS_TOKEN.format( |
|
56 |
- appid=JSAPI['appID'], |
|
57 |
- secret=JSAPI['appsecret'], |
|
58 |
- code=code |
|
59 |
- ), verify=False).json() |
|
60 |
- openid, access_token = access_info.get('openid', ''), access_info.get('access_token', '') |
|
61 |
- |
|
62 |
- res = requests.get(settings.WECHAT_OAUTH2_USERINFO.format( |
|
63 |
- access_token=access_token, |
|
64 |
- openid=openid |
|
65 |
- ), verify=False) |
|
66 |
- res.encoding = 'utf-8' |
|
67 |
- userinfo = res.json() |
|
42 |
+ access_info = get_access_info(JSAPI['appID'], JSAPI['appsecret'], code) |
|
43 |
+ userinfo = get_userinfo(access_info.get('access_token', ''), access_info.get('openid', '')) |
|
68 | 44 |
|
69 | 45 |
return redirect(furl(state).add(userinfo).url) |
70 | 46 |
|