def test_encode_jwt(self): self.test_generate_jwk() self.payload = {'hello': 'world'} self.encoded = JWTUtil.encode(self.payload, self.prv_jwk) print(f'encoded: {self.encoded}') extracted = JWTUtil.unverified_decode(self.encoded) print(f'payload: {extracted}') self.assertDictEqual(self.payload, extracted)
def issue_access_token(self, user_type, user_id, domain_id, **kwargs): private_jwk = self._get_private_jwk(kwargs) timeout = kwargs.get('timeout', self.CONST_TOKEN_TIMEOUT) payload = { 'cat': 'ACCESS_TOKEN', 'user_type': user_type, 'did': domain_id, 'aud': user_id, 'iat': int(time.time()), 'exp': int(time.time() + timeout) } encoded = JWTUtil.encode(payload, private_jwk) return encoded
def issue_refresh_token(self, user_type, user_id, domain_id, **kwargs): refresh_private_jwk = self._get_refresh_private_jwk(kwargs) ttl = kwargs.get('ttl', self.CONST_REFRESH_TTL) timeout = kwargs.get('timeout', self.CONST_REFRESH_TIMEOUT) refresh_key = self._generate_refresh_key() payload = { 'cat': 'REFRESH_TOKEN', 'user_type': user_type, 'did': domain_id, 'aud': user_id, 'iat': int(time.time()), 'exp': int(time.time() + timeout), "key": refresh_key, 'ttl': ttl } encoded = JWTUtil.encode(payload, refresh_private_jwk) if self.CONST_REFRESH_ONCE: self._set_refresh_token_cache(refresh_key) return encoded
def generate_api_key(self) -> Tuple[str, Any]: key = utils.random_string() payload = { 'cat': 'API_KEY', 'user_type': 'USER', 'did': self.domain_id, 'aud': self.aud_id, 'iat': int(time.time()), 'key': key, 'ver': '2020-03-04' } encoded = JWTUtil.encode(payload, self.prv_jwk) _LOGGER.debug(f'[KeyGenerator] Generated payload. ( ' f'cat: {payload.get("cat")}, ' f'ver: {payload.get("ver")}, ' f'key(masked): {payload.get("key")[0:8]}*****, ' f'aud: {payload.get("aud")}, ' f'did: {payload.get("did")} )') return key, encoded
def generate_api_key(self, api_key_id: str, user_type: str = 'USER') -> Tuple[str, Any]: payload = { 'cat': 'API_KEY', 'user_type': user_type, 'did': self.domain_id, 'aud': self.audience, 'iat': int(time.time()), 'api_key_id': api_key_id, 'ver': '2020-12-07' } encoded = JWTUtil.encode(payload, self.prv_jwk) _LOGGER.debug(f'[KeyGenerator] Generated payload. ( ' f'cat: {payload.get("cat")}, ' f'user_type: {payload.get("user_type")}, ' f'did: {payload.get("did")}, ' f'aud: {payload.get("aud")}, ' f'api_key_id: {payload.get("api_key_id")}, ' f'version: {payload.get("version")} )') return encoded