Esempio n. 1
0
 async def extract_token(self):
     request = self.request
     if 'ws_token' in request.GET:
         jwt_token = request.GET['ws_token'].encode('utf-8')
         request.GET['ws_token'].encode('utf-8')
         jwt = jose.decrypt(
             jose.deserialize_compact(jwt_token), app_settings['rsa']['priv'])
         return {
             'type': 'wstoken',
             'token': jwt.claims['token']
         }
Esempio n. 2
0
async def test_encrypt_descrypt():
    claims = {
        'iat': int(time.time()),
        'exp': int(time.time() + 30),
        'token': 'foobar'
    }
    jwe = jose.encrypt(claims, priv_jwk)
    encrypted_token = jose.serialize_compact(jwe)
    jwe = jose.deserialize_compact(encrypted_token)
    jwt = jose.decrypt(jwe, priv_jwk)
    assert jwt.claims == claims
Esempio n. 3
0
 async def extract_token(self):
     request = self.request
     if 'ws_token' in request.query:
         jwt_token = request.query['ws_token'].encode('utf-8')
         try:
             jwt = jose.decrypt(jose.deserialize_compact(jwt_token),
                                app_settings['rsa']['priv'])
         except jose.Expired:
             # expired token
             logger.warn(f'Expired token {jwt_token}', exc_info=True)
             return
         except jose.Error:
             logger.warn(f'Error decrypting JWT token', exc_info=True)
             return
         data = {'type': 'wstoken', 'token': jwt.claims['token']}
         if 'id' in jwt.claims:
             data['id'] = jwt.claims['id']
         return data