Exemple #1
0
    def post(self, request, *args, **kwargs):
        """
        Something went wrong here so access token is not associated with the user, it will work fine in enhancements.

        """
        serializer = LoginSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        data = serializer.data
        user = authenticate(username=data['MOBILE'], password=data['PASSWORD'])

        auth = {
            "client_id": "RpEFZiplGP5pT0snmRjkm7YrDC30igok5OQzUDNL",
            "client_secret":
            "pTwtohQfkdFhI7xlaIXh2sY42n74o8WK0VHNCFB5FsuDtiIRTnKlM18CLjD6CfrQQLtADzYfZFJt6H5eZwoHd15rahPaaGMbrxtrOzj1ULey3oK5EgAdndukyBtzszzk",
            "Content-Type": "application/json"
        }
        data = {"username": user.username, "password": user.password}
        if user:
            response = requests.post('http://localhost:8000/auth/token',
                                     headers=auth,
                                     data=data)
            token = response.json()["access_token"]
            status_code = "200"
        else:
            token = "Invalid"
            status_code = "400"
        data.update({"token": token, "code": status_code})

        return Response(data)
Exemple #2
0
def login(request):
    serializer = LoginSerializer(data=request.data)
    serializer.is_valid(raise_exception=True)
    user = serializer.validated_data["user"]
    auth_login(request, user)
    return Response(UserSerializer(instance=user).data,
                    status=status.HTTP_200_OK)
Exemple #3
0
 def post(self, request):
     serializer = LoginSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     user = serializer.validated_data["user"]
     if user.is_active:
         login(request, user)
         token, created = Token.objects.get_or_create(user=user)
         return Response({"token": token.key}, status=200)
     else:
         msg = "User is not active. Please verify with otp."
         return Response({"error": msg})
 def post(self, request, *args, **kwargs):
     serializer = LoginSerializer(data=request.data,
                                  context={'request': request})
     if serializer.is_valid():
         user = serializer.validated_data['user']
         if user:
             token, created = Token.objects.get_or_create(user=user)
             json = serializer.data
             json['token'] = token.key
             return Response(json, status=status.HTTP_200_OK)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def loginApi(request):
    data = request.data
    serializer = LoginSerializer(data=data)
    serializer.is_valid(raise_exception=True)
    user = serializer.validated_data
    _, token = AuthToken.objects.create(user)

    serializer_class = LoginSerializer
    return Response({
        'user': CheckUserSerializer(user).data,
        'token': token
    })
 def post(self, request):
     serializer = LoginSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     user = serializer.validated_data['user']
     if not user:
         return Response(status=status.HTTP_404_NOT_FOUND)
     payload = api_settings.JWT_PAYLOAD_HANDLER(user)
     token = api_settings.JWT_ENCODE_HANDLER(payload)
     return Response({
         **payload,
         'token': token,
         'exp': settings.JWT_AUTH['JWT_EXPIRATION_DELTA'].total_seconds()
     })
Exemple #7
0
    def test_given_inactive_user_login_should_fail(self):
        user = RegisterSerializer().create(self.user)
        user.is_active = False
        user.save()

        with self.assertRaisesRegex(ValidationError, "Incorrect credentials"):
            LoginSerializer().validate(self.user)
Exemple #8
0
 def post(self, request):
     # 实例化得到一个序列化类的对象
     serializer = LoginSerializer(data=request.data, )
     # 序列化类的对象的校验方法
     serializer.is_valid(raise_exception=True)
     token = serializer.context.get('token')
     user = serializer.context.get('user')
     # 如果通过,表示登录成功,返回手动签发的token
     # 如果失败,抛异常,就不用管了
     data = {
         'token': token,
         'user': UserSerializer(user, context={
             'request': request
         }).data
     }
     return Response(data, status.HTTP_200_OK)
Exemple #9
0
 def post(self, request):
     serializer = LoginSerializer(data=request.data)
     if serializer.is_valid():
         user = Account.objects.get(
             phone_number=str(serializer.data["phone_number"]))
         user.set_password(serializer.data["password"])
         user.save()
         try:
             token = Token.objects.get(user=user)
         except Token.DoesNotExist:
             token = Token.objects.create(user=user)
         user = authenticate(phone_number=str(
             serializer.data["phone_number"]),
                             password=serializer.data["password"])
         login(request, user)
         return Response(data={'token': token.key},
                         status=status.HTTP_200_OK)
     else:
         return Response(data={'errors': serializer.errors},
                         status=status.HTTP_400_BAD_REQUEST)
Exemple #10
0
    def post(self, request, *args, **kwargs):
        serializer = LoginSerializer(data=request.data)

        if serializer.is_valid():

            email = serializer.data['email']
            password = serializer.data['password']
            user = authenticate(email=email, password=password)

            if user is not None:
                """
                generate additional return values here
                """
                retval = {
                    'message': _('Login Successful'),
                    'user': AccountSerializer(user).data,
                    'token': Token.objects.get(user=user).key,
                    'status_code': status.HTTP_200_OK
                }

                return Response(retval, status=status.HTTP_200_OK)
            else:
                retval = {
                    'message': 'Authentication Failed',
                    'user': email,
                    'token': password,
                    'status_code': status.HTTP_401_UNAUTHORIZED
                }

                return Response(retval, status=status.HTTP_401_UNAUTHORIZED)
        else:
            retval = {
                'message': serializer.errors,
                'user': request.data.get('email'),
                'token': request.data.get('password'),
                'status_code': status.HTTP_400_BAD_REQUEST
            }

            return Response(retval, status=status.HTTP_400_BAD_REQUEST)
Exemple #11
0
 def post(self, request):
     serialize = LoginSerializer(data=request.data)
     serialize.is_valid(raise_exception=True)
     user = serialize.validated_data
     instance, token = AuthToken.objects.create(user)
     return Response({"user": UserSerializer(user).data, "token": token})
Exemple #12
0
 def test_given_no_registered_users_login_should_fail(self):
     with self.assertRaisesRegex(ValidationError, "Incorrect credentials"):
         LoginSerializer().validate(self.user)
Exemple #13
0
    def test_given_registered_user_when_credentials_are_correct_validate_should_login_user(
            self):
        RegisterSerializer().create(self.user)

        logged_user = LoginSerializer().validate(self.user)
        self.assertEqual(logged_user, User.objects.first())
Exemple #14
0
 def post(self, request):
     serializer = LoginSerializer(data={**request.data})
     serializer.is_valid(raise_exception=True)
     user = serializer.user
     user_token_data = UserLoginService(user).execute()
     return Response(user_token_data, status=HTTP_200_OK)