Ejemplo n.º 1
0
    def test_login_and_logout(self):
        factory = APIRequestFactory()
        request = factory.post(
            "/api/v1/auth/login",
            {
                "username": "******",
                "password": "******"
            },
            format="json",
        )
        response = obtain_auth_token(request)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertIn("token", response.data)

        # Logout this token
        token = response.data["token"]
        request = factory.get("/api/v1/auth/logout",
                              HTTP_AUTHORIZATION="Token {}".format(token))
        view = Logout.as_view()
        response = view(request)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertIsNone(response.data)

        # Retry same token and fails as unauthorized
        request = factory.get("/api/v1/auth/logout",
                              HTTP_AUTHORIZATION="Token {}".format(token))
        view = Logout.as_view()
        response = view(request)
        self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)
Ejemplo n.º 2
0
    def test_auth_analysis(self):
        # Include an appropriate `Authorization:` header on all requests.

        token = views.obtain_auth_token(username="******", password="******")
        client = APIClient()
        client.credentials(HTTP_AUTHORIZATION='Token ' + token.key)
        response = client.get('http://localhost:8000/api/v1/analysis')
        self.assertEqual(response.status_code, 200)
Ejemplo n.º 3
0
    def test_obtain_auth_token(self):

        self.create_user()

        print 'wrong authentication'
        request = self.factory.post('/api-token-auth/', {
            'username': self.user.username,
            'password': '******'
        },
                                    format='json')
        response = obtain_auth_token(request)
        self.assertEquals(response.data, {
            u'non_field_errors':
            [u'Unable to login with provided credentials.']
        })

        print 'correct authentication'
        request = self.factory.post('/api-token-auth/', {
            'username': self.user.username,
            'password': '******'
        },
                                    format='json')
        print "this is the request:\n", request
        print "body:\n", request.body

        self.assertEquals(request.body,
                          '{"username": "******", "password": "******"}')

        response = obtain_auth_token(request)
        print "response is\n", response.data

        self.assertEquals(response.data, {'token': self.user.auth_token.key})
        print 'non authenticated get'
        request = self.factory.get('/labs/coplay/api/example_view/',
                                   format='json')
        response = api.example_view(request)
        print "response is\n", response.data
        found_user = simple_auth_token(self.user.auth_token.key)
        self.assertEquals(self.user, found_user)

        print 'authenticated get'
        request = self.factory.get('/labs/coplay/api/example_view/',
                                   format='json')
        request.user = self.user
        response = api.example_view(request)
        print "response is\n", response.data
Ejemplo n.º 4
0
    def login(self, data=None):
        if data is None:
            data = self.TEST_DATA

        self.signup_view(data)
        request = APIRequestFactory().post('/api/token-auth', data=data)
        response = obtain_auth_token(request).render()
        content = response.content.decode()
        content = eval(content)

        return response, content['token']
Ejemplo n.º 5
0
def userLogin(request):
    username = request.POST.get("username")
    password = request.POST.get("password")
    user = authenticate(username=username, password=password)
    if user is not None:
        login(request, user)
        token = views.obtain_auth_token(request).data
        result = {'code': 20000, 'data': token}
        return JsonResponse(result)
    else:
        return render(request,"error.html",{"message":"账户名或密码错误"})
Ejemplo n.º 6
0
 def test_login_wrong_credentials(self):
     factory = APIRequestFactory()
     request = factory.post(
         "/api/v1/login",
         {
             "username": "******",
             "password": "******"
         },
         content_type="application/json",
     )
     response = obtain_auth_token(request)
     self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 7
0
    def test_obtain_auth_token(self):
        
        self.create_user()

        
        print 'wrong authentication'
        request = self.factory.post('/api-token-auth/', {'username': self.user.username, 'password':'******'}, format='json')
        response = obtain_auth_token(request)
        self.assertEquals(  response.data, {u'non_field_errors': [u'Unable to login with provided credentials.']})

        print 'correct authentication'
        request = self.factory.post('/api-token-auth/', {'username': self.user.username, 'password':'******'}, format='json')
        print "this is the request:\n", request
        print "body:\n", request.body
        
        self.assertEquals(  request.body, '{"username": "******", "password": "******"}')
        
        response = obtain_auth_token(request)
        print "response is\n", response.data
        
                
        self.assertEquals(  response.data, {'token': self.user.auth_token.key})
        print 'non authenticated get'
        request = self.factory.get('/labs/coplay/api/example_view/', format='json')
        response = api.example_view(request)
        print "response is\n", response.data
        found_user =  simple_auth_token(self.user.auth_token.key)
        self.assertEquals(  self.user, found_user)

        print 'authenticated get'
        request = self.factory.get('/labs/coplay/api/example_view/', format='json')
        request.user = self.user
        response = api.example_view(request)
        print "response is\n", response.data


        
        
        
Ejemplo n.º 8
0
 def create( self, request, *args, **kwargs ):
    username = request.POST.get( 'username', None ) 
    email = request.POST.get( 'email', None ) 
    password = request.POST.get( 'password', None ) 
    try:
       User.objects.get( username=username )
       # User already exists, throws and error
       body = { "err_message" : '%s is already taken... sorry :(' % username }
       return Response( body,
                        status=status.HTTP_400_BAD_REQUEST )
    except ObjectDoesNotExist:
       user = User.objects.create_user( username, email, password )
       return rest_views.obtain_auth_token( request )
Ejemplo n.º 9
0
 def create(self, request, *args, **kwargs):
     username = request.POST.get('username', None)
     email = request.POST.get('email', None)
     password = request.POST.get('password', None)
     try:
         User.objects.get(username=username)
         # User already exists, throws and error
         body = {
             "err_message": '%s is already taken... sorry :(' % username
         }
         return Response(body, status=status.HTTP_400_BAD_REQUEST)
     except ObjectDoesNotExist:
         user = User.objects.create_user(username, email, password)
         return rest_views.obtain_auth_token(request)
Ejemplo n.º 10
0
def token_view(request):
    '''
    API endpoint that allows users to get a token
    ---
    parameters:
        - name: username
          description: The username you want to get the token
        - name: password
          description: Password of the user
          type: password
    '''
    response = obtain_auth_token(request)
    if response.status_code != status.HTTP_200_OK:
        sleep(settings.BAD_LOGIN_SLEEP_TIME)
    return response
Ejemplo n.º 11
0
def token_view(request):
    '''
    API endpoint that allows users to get a token
    ---
    parameters:
        - name: username
          description: The username you want to get the token
        - name: password
          description: Password of the user
          type: password
    '''
    response = obtain_auth_token(request)
    if response.status_code != status.HTTP_200_OK:
        sleep(settings.BAD_LOGIN_SLEEP_TIME)
    return response
Ejemplo n.º 12
0
def autenticar(request):
	#myDict = dict(request.POST.iterlists())
	username = request.POST['username']
	password = request.POST['password']
	user = authenticate(username=username, password=password)
	if user is not None:
		if user.is_active:
			#login(request, user)
			token = Token.objects.get_or_create(user=user)
			print("Token adquirido: ", obtain_auth_token(request).data)
			serializer = UserSerializer(user)
			serializer.data['token'] = obtain_auth_token(request).data
			return JSONResponse(serializer.data)
			#tex = "Usuario %s logueado!" % username
			#return HttpResponse(tex)
			# Redirect to a success page.
			"""
		else:
			# Return a 'disabled account' error message
	else:
		# Return an 'invalid login' error message.
"""
	texDev = "Usuario %s a loguear!" % username
	return HttpResponse(texDev)
Ejemplo n.º 13
0
    def test_can_get_auth_token(self):
        payload = {
            'username': self.test_username,
            'password': '******',
        }

        user = User(**self.get_user_kwargs())
        user.set_password(user.password)
        user.save()

        request = self.factory.post("/api/user/api-token-auth/", payload)
        response = obtain_auth_token(request)

        token = Token.objects.get(
            user=user
        )  # must be after the request, the token will be created if it doesn't exist by the view

        self.assertEqual(token.key, response.data.get('token'))
Ejemplo n.º 14
0
 def testAuthToken(self):
     request = self.factory.post("/api-token-auth/", {"username": self.data["email"], "password": self.data["password"]})
     response = auth_views.obtain_auth_token(request)
     self.assertEqual(response.data["token"], self.token.key)
Ejemplo n.º 15
0
 def login(self, request):
     return obtain_auth_token(request._request)