|
|
|
@@ -6,10 +6,12 @@ from django_curtail_uuid import CurtailUUID
|
|
6
|
6
|
from django_logit import logit
|
|
7
|
7
|
from django_response import response
|
|
8
|
8
|
from ipaddr import client_ip
|
|
9
|
|
-from pywe_miniapp import get_userinfo
|
|
|
9
|
+from pywe_miniapp import get_session_key, get_userinfo, store_session_key
|
|
|
10
|
+from pywe_storage import RedisStorage
|
|
10
|
11
|
from TimeConvert import TimeConvert as tc
|
|
11
|
12
|
|
|
12
|
13
|
from account.models import UserInfo
|
|
|
14
|
+from utils.redis.connect import r
|
|
13
|
15
|
from utils.redis.rprofile import set_profile_info
|
|
14
|
16
|
|
|
15
|
17
|
|
|
|
|
@@ -38,7 +40,10 @@ def get_userinfo_api(request):
|
|
38
|
40
|
# u'province': u'Guangdong',
|
|
39
|
41
|
# u'unionId': u'ocMvos6NjeKLIBqg5Mr9QjxrP1FA',
|
|
40
|
42
|
# u'watermark': {u'appid': u'wx4f4bc4dec97d474b', u'timestamp': 1477314187}}
|
|
41
|
|
- userinfo = get_userinfo(appid=appid, secret=secret, code=code, encryptedData=encryptedData, iv=iv)
|
|
|
43
|
+ # Get SessionKey
|
|
|
44
|
+ session_key = get_session_key(appid=appid, secret=secret, code=code)
|
|
|
45
|
+ # Get Userinfo
|
|
|
46
|
+ userinfo = get_userinfo(appid=appid, secret=secret, code=code, session_key=session_key, encryptedData=encryptedData, iv=iv)
|
|
42
|
47
|
|
|
43
|
48
|
# Get or Create User
|
|
44
|
49
|
user, created = UserInfo.objects.select_for_update().get_or_create(unionid=userinfo.get('unionId', ''))
|
|
|
|
@@ -61,6 +66,10 @@ def get_userinfo_api(request):
|
|
61
|
66
|
user.signup_at = tc.utc_datetime()
|
|
62
|
67
|
user.save()
|
|
63
|
68
|
|
|
|
69
|
+ # Store Userinfo
|
|
64
|
70
|
set_profile_info(user)
|
|
65
|
71
|
|
|
|
72
|
+ # Store SessionKey
|
|
|
73
|
+ store_session_key(appid=appid, secret=secret, session_key=session_key, unid=user.user_id, storage=RedisStorage(r))
|
|
|
74
|
+
|
|
66
|
75
|
return response(200, 'Mini App Login Success', u'微信小程序登录成功', user.data)
|