def test_create_token_string_token_arg(self): from auth_remember.models import RememberToken from auth_remember.utils import create_token_string value = create_token_string(self.user) token = RememberToken.objects.get_by_string(value) time.sleep(0.1) new_value = create_token_string(self.user, token) new_token = RememberToken.objects.get_by_string(new_value) self.assertEqual(new_token.created_initial, token.created) self.assertTrue(new_token.created > token.created)
def test_middleware_update_token(self): from auth_remember.middleware import AuthRememberMiddleware from auth_remember.models import RememberToken from auth_remember.settings import COOKIE_NAME from auth_remember.utils import create_token_string request = self.factory.get('/') request.user = AnonymousUser() value = create_token_string(self.user) request.COOKIES[COOKIE_NAME] = value SessionMiddleware().process_request(request) AuthRememberMiddleware().process_request(request) self.assertEqual(request.user, self.user) # Remember me token should be deleted self.assertFalse(RememberToken.objects.get_by_string(value)) # Create response response = HttpResponse("Test response") AuthRememberMiddleware().process_response(request, response) # The remember-me token should be changed token_string = response.cookies[COOKIE_NAME].value self.assertFalse(token_string == value) self.assertTrue(RememberToken.objects.get_by_string(token_string))
def test_get_by_token_string(self): from auth_remember.models import RememberToken from auth_remember.utils import create_token_string value = create_token_string(self.user) token = RememberToken.objects.get_by_string(value) self.assertEqual(token.user, self.user)
def remember_user(request, user): """Set the remember-me flag on the user. A token is automatically generated and stored in the user's session. This token is set as a cookie value by the middleware. """ token_string = create_token_string(user, None) preset_cookie(request, token_string)
def test_auth_backend(self): from auth_remember import middleware # Register signals from auth_remember.utils import create_token_string value = create_token_string(self.user) request = self.factory.get('/') SessionMiddleware().process_request(request) user = auth.authenticate(token_string=value, request=request) auth.login(request, user) self.assertEqual(user, self.user) self.assertFalse(user.is_fresh)
def authenticate(self, token_string, request): """Return the user associated with the given token.""" token = RememberToken.objects.get_by_string(token_string) if not token: return user = token.user # Create new token cookie value and delete current token token_string = utils.create_token_string(user, token) utils.preset_cookie(request, token_string) token.delete() user._auth_remember_user = True return user
def test_create_token_string(self): from auth_remember.utils import create_token_string value = create_token_string(self.user) self.assertTrue(value.startswith('%d:' % self.user.id))