コード例 #1
0
ファイル: login.py プロジェクト: Oinweb/py-fly
    def sign_in(self, request, pk=None):
        """
            Function will fetch the login credentials and either log the user in
            or return error. To call this function, use this URL:
            --------------------------------------------
            /api/logins/0/sign_in/?format=json
            --------------------------------------------
        """
        serializer = LoginSerializer(data=request.data)
        if serializer.is_valid():
            username = serializer.data['username'].lower()
            password = serializer.data['password']
            
            try:
                user = User.objects.get(username=username)
            except User.DoesNotExist:
                return Response({'status': 'failed', 'message': 'username not found'})
        
            # Check to see if our username and password authenticate with our system.
            user = authenticate(
                username=username,
                password=password
            )
            
            # Generate the return message according to whether we are logged in or not.
            if user is not None:
                if user.is_active:
                    # Login
                    login(request, user)
                    
                    # Fetch the token id for the user if it exists. If token
                    # doesn't work then we need to create it right now.
                    try:
                        token = Token.objects.get(user_id=request.user.id)
                    except Token.DoesNotExist:
                        token = Token.objects.create(user_id=request.user.id)

                    # Return the success status.
                    response_data = {
                        'status': 'success',
                        'message': 'logged in',
                        'user_id': user.id,
                        'token': str(token)
                    }
                else:
                    response_data = {'status' : 'failure', 'message' : 'you are suspended'}
            else:
                response_data = {'status' : 'failure', 'message' : 'wrong username or password'}

            return Response(response_data)
        else:
            return Response({'status': 'failed', 'message': 'username and/or password are blank'})
コード例 #2
0
ファイル: views.py プロジェクト: ismail0352/pythonCI
    def get(self, request, user_name=None, password=None, format=None):
        """
        Build login API url using payload which is form by username, password,
        clientid, clientsecret.

        login API sample URL : http://www.sample.com/mws/oauth/token

        Args:
            request: represents a single HTTP request. Request objects also have
                     a few useful methods like GET,POST,DELETE,SESSION etc.

            user_name: string
                           Grabs username string
                           Default: None

             password: string
                           Grabs password string
                           Default: None

               format: string
                           Grabs format string
                           Default: None
        Returns:
                login_data, which is reponse of login API url if serializer is valid
                else returns string 'Config page'

        Raises:
            None

        """
        list_creds = []
        dict = {}
        dict["username"] = user_name
        dict["password"] = password

        client_id = self.CLIENTID
        client_secret = self.CLIENTSECRET

        list_creds.append(dict)
        serializer = LoginSerializer(data=list_creds, many=True)
        if serializer.is_valid():
            try:
                payload = "?grant_type=password" + "&username="******"&password="******"&client_id=" + client_id + "&client_secret=" + client_secret
                loginApi_url = self.baseUrl_login + payload
                login_data = requests.post(loginApi_url)
                return login_data
            except Exception as e:
                return "Config page"

        return Response(serializer.errors)
コード例 #3
0
ファイル: views.py プロジェクト: codingsasi/plog
    def post(self, request, *args, **kwargs):
        credentials = LoginSerializer(data=request.data)

        if not credentials.is_valid():
            return Response(status=status.HTTP_400_BAD_REQUEST)

        user = authenticate(username=request.POST['username'],
                            password=request.POST['password'])

        if not user:
            return Response(status=status.HTTP_401_UNAUTHORIZED)

        # Okay, security check complete. Log the user in.
        login(request, user)
        serializer = UserSerializer(user)
        return Response(serializer.data, status=status.HTTP_200_OK)
コード例 #4
0
ファイル: views.py プロジェクト: jdbarbosa/Toptal
 def post(self, request):
     
     serializer = LoginSerializer(data = request.DATA)
     if not serializer.is_valid():
         return Response({"message":serializer.errors.keys()[0] + " - " + serializer.errors[serializer.errors.keys()[0]][0]}, status.HTTP_400_BAD_REQUEST)
     
     
     username = request.DATA['username']
     password = request.DATA['password']
     user = authenticate(username = username, password = password)
 
     if user is None:
         return Response({"message":"User does not exist"}, status.HTTP_400_BAD_REQUEST)
     
     if not user.is_active:
         return Response({"message":"User is inactive"}, status.HTTP_400_BAD_REQUEST)
         
     login(request, user)
 
     return Response({"message":"OK"}, status.HTTP_200_OK)
コード例 #5
0
 def post(self, request):
     serializer = LoginSerializer(data=request.data, context={
         'request': request,
     })
     serializer.is_valid(raise_exception=True)
     serializer.save()
     return response.Response(
         status=status.HTTP_200_OK,
         data={
              'details': 'You have been logged in successfully!'
         },
     )
コード例 #6
0
    def post(self, request):

        login_serializer = LoginSerializer(data=request.data,
                                           context={
                                               'request': request,
                                           })
        login_serializer.is_valid(raise_exception=True)
        login_serializer.save()

        return response.Response(status=status.HTTP_200_OK,
                                 data={
                                     'message': 'Login successfully.',
                                 })