我们从Python开源项目中,提取了以下28个代码示例,用于说明如何使用django.core.signing.get_cookie_signer()。
def get_signed_cookie(self, key, default=RAISE_ERROR, salt='', max_age=None): """ Attempts to return a signed cookie. If the signature fails or the cookie has expired, raises an exception... unless you provide the default argument in which case that value will be returned instead. """ try: cookie_value = self.COOKIES[key] except KeyError: if default is not RAISE_ERROR: return default else: raise try: value = signing.get_cookie_signer(salt=key + salt).unsign( cookie_value, max_age=max_age) except signing.BadSignature: if default is not RAISE_ERROR: return default else: raise return value
def test_find_and_assign_anonymous_cart( opened_anonymous_cart, customer_user, client): cart_token = opened_anonymous_cart.token # Anonymous user has a cart with token stored in cookie value = signing.get_cookie_signer(salt=utils.COOKIE_NAME).sign(cart_token) client.cookies[utils.COOKIE_NAME] = value # Anonymous logs in response = client.post( reverse('account_login'), {'username': customer_user.email, 'password': 'password'}, follow=True) assert response.context['user'] == customer_user # User should have only one cart, the same as he had previously in # anonymous session authenticated_user_carts = customer_user.carts.filter( status=CartStatus.OPEN) assert authenticated_user_carts.count() == 1 assert authenticated_user_carts[0].token == cart_token
def test_reset_cookie(self): request = get_request() storage = self.get_storage()('wizard1', request, None) storage.data = {'key1': 'value1'} response = HttpResponse() storage.update_response(response) cookie_signer = signing.get_cookie_signer(storage.prefix) signed_cookie_data = cookie_signer.sign(storage.encoder.encode(storage.data)) self.assertEqual(response.cookies[storage.prefix].value, signed_cookie_data) storage.init_data() storage.update_response(response) unsigned_cookie_data = cookie_signer.unsign(response.cookies[storage.prefix].value) self.assertJSONEqual(unsigned_cookie_data, {"step_files": {}, "step": None, "extra_data": {}, "step_data": {}})
def test_reset_cookie(self): request = get_request() storage = self.get_storage()('wizard1', request, None) storage.data = {'key1': 'value1'} response = HttpResponse() storage.update_response(response) cookie_signer = signing.get_cookie_signer(storage.prefix) signed_cookie_data = cookie_signer.sign(storage.encoder.encode(storage.data)) self.assertEqual(response.cookies[storage.prefix].value, signed_cookie_data) storage.init_data() storage.update_response(response) unsigned_cookie_data = cookie_signer.unsign(response.cookies[storage.prefix].value) self.assertJSONEqual( unsigned_cookie_data, {"step_files": {}, "step": None, "extra_data": {}, "step_data": {}} )
def set_signed_cookie(self, key, value, salt='', **kwargs): value = signing.get_cookie_signer(salt=key + salt).sign(value) return self.set_cookie(key, value, **kwargs)
def test_login_with_incorrect_cookie_token(customer_user, client): value = signing.get_cookie_signer(salt=utils.COOKIE_NAME).sign('incorrect') client.cookies[utils.COOKIE_NAME] = value response = client.post( reverse('account_login'), {'username': customer_user.email, 'password': 'password'}, follow=True) assert response.context['user'] == customer_user authenticated_user_carts = customer_user.carts.filter( status=CartStatus.OPEN) assert authenticated_user_carts.count() == 0
def test_manipulated_cookie(self): request = get_request() storage = self.get_storage()('wizard1', request, None) cookie_signer = signing.get_cookie_signer(storage.prefix) storage.request.COOKIES[storage.prefix] = cookie_signer.sign( storage.encoder.encode({'key1': 'value1'})) self.assertEqual(storage.load_data(), {'key1': 'value1'}) storage.request.COOKIES[storage.prefix] = 'i_am_manipulated' self.assertIsNone(storage.load_data())
def test_manipulated_cookie(self): request = get_request() storage = self.get_storage()('wizard1', request, None) cookie_signer = signing.get_cookie_signer(storage.prefix) storage.request.COOKIES[storage.prefix] = cookie_signer.sign( storage.encoder.encode({'key1': 'value1'}) ) self.assertEqual(storage.load_data(), {'key1': 'value1'}) storage.request.COOKIES[storage.prefix] = 'i_am_manipulated' self.assertIsNone(storage.load_data())
def test_manipulated_cookie(self): request = get_request() storage = self.get_storage()('wizard1', request, None) cookie_signer = signing.get_cookie_signer(storage.prefix) storage.request.COOKIES[storage.prefix] = cookie_signer.sign( storage.encoder.encode({'key1': 'value1'})) self.assertEqual(storage.load_data(), {'key1': 'value1'}) storage.request.COOKIES[storage.prefix] = 'i_am_manipulated' self.assertRaises(SuspiciousOperation, storage.load_data)