|
@@ -13,6 +13,7 @@
|
|
"""
|
|
"""
|
|
import datetime
|
|
import datetime
|
|
import traceback
|
|
import traceback
|
|
|
|
+
|
|
import simplejson as json
|
|
import simplejson as json
|
|
from django.contrib.auth.hashers import make_password, check_password # 对密码加密模块
|
|
from django.contrib.auth.hashers import make_password, check_password # 对密码加密模块
|
|
from django.db.models import Q
|
|
from django.db.models import Q
|
|
@@ -1022,13 +1023,6 @@ class v2LoginView(TemplateView):
|
|
language = request_dict.get('language', 'en')
|
|
language = request_dict.get('language', 'en')
|
|
response = ResponseObject(language)
|
|
response = ResponseObject(language)
|
|
was_limited = getattr(request, 'limited', False)
|
|
was_limited = getattr(request, 'limited', False)
|
|
- x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
|
|
|
|
- if x_forwarded_for:
|
|
|
|
- ip = x_forwarded_for.split(',')[0] # 所以这里是真实的ip
|
|
|
|
- else:
|
|
|
|
- ip = request.META.get('REMOTE_ADDR') # 这里获得代理ip
|
|
|
|
- print ('访问者的ip:')
|
|
|
|
- print (ip)
|
|
|
|
if was_limited is True:
|
|
if was_limited is True:
|
|
return response.json(5)
|
|
return response.json(5)
|
|
return self.validates(request_dict, response)
|
|
return self.validates(request_dict, response)
|
|
@@ -1047,50 +1041,46 @@ class v2LoginView(TemplateView):
|
|
def validates(self, request_dict, response):
|
|
def validates(self, request_dict, response):
|
|
username = request_dict.get('userName', None)
|
|
username = request_dict.get('userName', None)
|
|
password = request_dict.get('userPwd', None)
|
|
password = request_dict.get('userPwd', None)
|
|
- # 标志ios登录还是安卓登录标记
|
|
|
|
- phone_code = request_dict.get('phone_code', None)
|
|
|
|
- if not phone_code:
|
|
|
|
- phone_code = ''
|
|
|
|
if not username or not password:
|
|
if not username or not password:
|
|
return response.json(111)
|
|
return response.json(111)
|
|
username = username.strip()
|
|
username = username.strip()
|
|
password = password.strip()
|
|
password = password.strip()
|
|
data_valid = DataValid()
|
|
data_valid = DataValid()
|
|
if data_valid.email_validate(username):
|
|
if data_valid.email_validate(username):
|
|
- return self.do_email_login(phone_code,username, password, response)
|
|
|
|
|
|
+ return self.do_email_login(username, password, response)
|
|
elif data_valid.mobile_validate(username):
|
|
elif data_valid.mobile_validate(username):
|
|
- return self.do_phone_login(phone_code,username, password, response)
|
|
|
|
|
|
+ return self.do_phone_login(username, password, response)
|
|
elif data_valid.name_validate(username):
|
|
elif data_valid.name_validate(username):
|
|
- return self.do_name_login(phone_code,username, password, response)
|
|
|
|
|
|
+ return self.do_name_login(username, password, response)
|
|
else:
|
|
else:
|
|
return response.json(107)
|
|
return response.json(107)
|
|
|
|
|
|
- def do_email_login(self, phone_code,email, password, response):
|
|
|
|
|
|
+ def do_email_login(self, email, password, response):
|
|
user_qs = Device_User.objects.filter(Q(username=email) | Q(userEmail=email))
|
|
user_qs = Device_User.objects.filter(Q(username=email) | Q(userEmail=email))
|
|
- return self.valid_login(phone_code,user_qs, password, response)
|
|
|
|
|
|
+ return self.valid_login(user_qs, password, response)
|
|
|
|
|
|
- def do_phone_login(self, phone_code,phone, password, response):
|
|
|
|
|
|
+ def do_phone_login(self, phone, password, response):
|
|
user_qs = Device_User.objects.filter(Q(phone=phone) | Q(username=phone), is_active=True, user_isValid=True)
|
|
user_qs = Device_User.objects.filter(Q(phone=phone) | Q(username=phone), is_active=True, user_isValid=True)
|
|
- return self.valid_login(phone_code,user_qs, password, response)
|
|
|
|
|
|
+ return self.valid_login(user_qs, password, response)
|
|
|
|
|
|
- def do_name_login(self,phone_code, username, password, response):
|
|
|
|
|
|
+ def do_name_login(self, username, password, response):
|
|
user_qs = Device_User.objects.filter(Q(username=username) | Q(phone=username) | Q(userEmail=username),
|
|
user_qs = Device_User.objects.filter(Q(username=username) | Q(phone=username) | Q(userEmail=username),
|
|
is_active=True, user_isValid=True)
|
|
is_active=True, user_isValid=True)
|
|
- return self.valid_login(phone_code,user_qs, password, response)
|
|
|
|
|
|
+ return self.valid_login(user_qs, password, response)
|
|
|
|
|
|
- def valid_login(self,phone_code, user_qs, password, response):
|
|
|
|
|
|
+ def valid_login(self, user_qs, password, response):
|
|
if not user_qs.exists():
|
|
if not user_qs.exists():
|
|
return response.json(104)
|
|
return response.json(104)
|
|
users = user_qs.values('role__rid', 'role__roleName', 'userID', 'role', 'NickName', 'username', 'userEmail',
|
|
users = user_qs.values('role__rid', 'role__roleName', 'userID', 'role', 'NickName', 'username', 'userEmail',
|
|
- 'phone','machine_code', 'password', 'userIconPath', 'user_isValid', 'is_active')[0]
|
|
|
|
|
|
+ 'phone', 'password', 'userIconPath', 'user_isValid', 'is_active')[0]
|
|
if not check_password(password, users['password']):
|
|
if not check_password(password, users['password']):
|
|
return response.json(111)
|
|
return response.json(111)
|
|
userID = users['userID']
|
|
userID = users['userID']
|
|
tko = TokenObject()
|
|
tko = TokenObject()
|
|
- res = tko.generate(data={'userID': userID, 'lang': response.lang, 'user': users['username'], 'machine_code': phone_code})
|
|
|
|
|
|
+ res = tko.generate(data={'userID': userID, 'lang': response.lang, 'user': users['username'],'m_code':'123413243214'})
|
|
if tko.code == 0:
|
|
if tko.code == 0:
|
|
now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
|
|
now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
|
|
- user_qs.update(last_login=now_time, language=response.lang, machine_code=phone_code )
|
|
|
|
|
|
+ user_qs.update(last_login=now_time, language=response.lang)
|
|
res['rid'] = users['role__rid']
|
|
res['rid'] = users['role__rid']
|
|
res['roleName'] = users['role__roleName']
|
|
res['roleName'] = users['role__roleName']
|
|
res['permList'] = ModelService.own_permission(userID)
|
|
res['permList'] = ModelService.own_permission(userID)
|
|
@@ -1106,15 +1096,6 @@ class v2LoginView(TemplateView):
|
|
res['username'] = users['username'] if users['username'] is not None else ''
|
|
res['username'] = users['username'] if users['username'] is not None else ''
|
|
res['userEmail'] = users['userEmail'] if users['userEmail'] is not None else ''
|
|
res['userEmail'] = users['userEmail'] if users['userEmail'] is not None else ''
|
|
res['phone'] = users['phone'] if users['phone'] is not None else ''
|
|
res['phone'] = users['phone'] if users['phone'] is not None else ''
|
|
- reds = RedisObject()
|
|
|
|
- print (res['access_token'])
|
|
|
|
- if phone_code == users['machine_code'] :
|
|
|
|
- res['machine_code'] = '本机登录'
|
|
|
|
- else:
|
|
|
|
- res['machine_code'] = '别地登录被挤出!'
|
|
|
|
- if not reds.set_data(key=res['userID']+'machine_code', val=phone_code, expire=5): #1个小时
|
|
|
|
- return response.json(10, '生成缓存错误')
|
|
|
|
-
|
|
|
|
return response.json(0, res)
|
|
return response.json(0, res)
|
|
else:
|
|
else:
|
|
return response.json(tko.code)
|
|
return response.json(tko.code)
|