def refresh_token(request): token = refresh_jwt_token(request) print(token) exp = timezone.now() + exp_delta - datetime.timedelta(seconds=300) response = { 'token': token, 'exp': exp, } return Response(response, status=200)
def test_cant_refresh_token(self): # Developers generate tokens, not us, they should not be refreshable, # the refresh implementation does not even know how to decode them. api_key = self.create_api_key(self.user) payload = self.auth_token_payload(self.user, api_key.key) payload['orig_iat'] = timegm(payload['iat'].utctimetuple()) token = self.encode_token_payload(payload, api_key.secret) request = self.factory.post('/lol-refresh', {'token': token}) response = refresh_jwt_token(request) response.render() assert response.status_code == 400 data = json.loads(response.content) assert data == {'non_field_errors': ['Error decoding signature.']}
def test_post_response(self): post_body = { 'username': '******', 'email': '*****@*****.**', 'password': '******' } request = APIRequestFactory().post('/', post_body, format='json') request.user = AnonymousUser() response = api_views.CreateUserView.as_view()(request) token = response.data['token'] request = APIRequestFactory().post('/', {'token': token}) request.user = AnonymousUser() response = refresh_jwt_token(request) assert response.status_code == 200, 'Should return 200 OK' assert response.data.get('token'), 'Should return refreshed token' assert response.data.get('user'), 'Should return user data' assert response.data.get('user')['username'] == 'username', \ 'Should return the same user data'