views.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from django.http import JsonResponse
  2. from utils.fbmsg import FBMsg
  3. from django.contrib import auth
  4. from django.contrib.auth.models import User
  5. import json
  6. from userprofile.models import Users
  7. def login(request, *args, **kwargs):
  8. post_data = json.loads(request.body.decode())
  9. data = {
  10. "name": post_data.get('name'),
  11. "password": post_data.get('password'),
  12. }
  13. ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
  14. 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
  15. if User.objects.filter(username=str(data['name'])).exists():
  16. user = auth.authenticate(username=str(data['name']), password=str(data['password']))
  17. if user is None:
  18. err_ret = FBMsg.err_ret()
  19. err_ret['data'] = data
  20. return JsonResponse(err_ret)
  21. else:
  22. auth.login(request, user)
  23. user_detail = Users.objects.filter(user_id=user.id).first()
  24. data = {
  25. "name": data['name'],
  26. 'openid': user_detail.openid,
  27. }
  28. ret = FBMsg.ret()
  29. ret['ip'] = ip
  30. ret['data'] = data
  31. return JsonResponse(ret)
  32. else:
  33. err_ret = FBMsg.err_ret()
  34. err_ret['ip'] = ip
  35. err_ret['data'] = data
  36. return JsonResponse(err_ret)