コード例 #1
0
def create_user(request):
    if request.method == "POST":
        try:
            post_data = json.loads(request.body)

            first_name = post_data["first_name"]
            last_name = post_data["last_name"]
            username = post_data["username"]
            email = post_data["email"]
            password = post_data["password"]
            confirm_password = post_data["confirm_password"]

        except KeyError:
            return JsonResponse({'msg': "Field not found!"}, status=400)
        except Exception as e:
            print(e)
            return JsonResponse({'msg': "Error occured at server"}, status=500)

        isValid, errors = validate(first_name, last_name, username, email,
                                   password, confirm_password)

        if (isValid):
            password = hashlib.sha256(password.encode()).hexdigest()
            try:
                user = User()
                user.first_name = first_name
                user.last_name = last_name
                user.username = username
                user.email = email
                user.password = password
                user.save()

                token = generate_token()
                auth_token = AuthToken()
                auth_token.user = user
                auth_token.token = token
                auth_token.save()

                response = JsonResponse(
                    {'msg': "<h1>User created Successfully!"}, status=200)
                response.set_cookie("auth_token",
                                    token,
                                    max_age=365 * 24 * 60 * 60)
                return response

            except Exception as e:
                print(e)
                return JsonResponse(
                    {'msg': "Unable to Create User, Please try again Later!"},
                    status=500)
        else:
            return JsonResponse({'error': errors}, safe=False, status=400)

    return JsonResponse({'msg': "Invalid Method"})
コード例 #2
0
def login(request):
    try:
        if request.method == "POST":
            post_data = json.loads(request.body)
            username = post_data["username"]
            password = post_data["password"]
            password = hashlib.sha256(password.encode()).hexdigest()

            user = User.objects.filter(username=username, password=password)
            if is_user_exist(user):
                user = user.first()
                serialized_user = UserSerializer(user, many=False)

                token = generate_token()

                auth_token = AuthToken()
                auth_token.user = user
                auth_token.token = token
                auth_token.save()

                response = JsonResponse(serialized_user.data, safe=False)
                response.set_cookie("auth_token",
                                    token,
                                    max_age=365 * 24 * 60 * 60)
                return response
            else:
                return JsonResponse({"error": "Invalid Username or Password!"},
                                    safe=False,
                                    status=400)
    except KeyError:
        return JsonResponse({'error': "Please provide all the fields"},
                            status=400)
    except Exception as e:
        return JsonResponse({'error': 'Internal Server Error!'}, status=500)
    else:
        return JsonResponse({'error': "Invalid Method"}, status=400)