def test_generate_unsigned(self) -> None: token = generate_jwt_token(generate_session_id(), signed=False) assert '.' not in token assert 123 == len(token) assert "session_id" in json.loads(_base64_decode(token, encoding='utf-8')) another_token = generate_jwt_token(generate_session_id(), signed=False) assert '.' not in another_token assert 123 == len(another_token) assert "session_id" in json.loads(_base64_decode(another_token, encoding='utf-8')) assert token != another_token
def test_payload_unsigned(self): token = generate_jwt_token(generate_session_id(), signed=False, extra_payload=dict(foo=10)) assert '.' not in token payload = json.loads(_base64_decode(token, encoding='utf-8')) assert payload['foo'] == 10
def test_generate_signed(self) -> None: session_id = generate_session_id(signed=True, secret_key="abc") token = generate_jwt_token(session_id, signed=True, secret_key="abc") assert '.' in token decoded = json.loads(_base64_decode(token.split('.')[0], encoding='utf-8')) assert "session_id" in decoded assert decoded['session_id'] == session_id assert check_token_signature(token, secret_key="abc", signed=True) assert not check_token_signature(token, secret_key="qrs", signed=True)
def test_payload_signed(self): session_id = generate_session_id(signed=True, secret_key="abc") token = generate_jwt_token(session_id, signed=True, secret_key="abc", extra_payload=dict(foo=10)) assert '.' in token decoded = json.loads(_base64_decode(token.split('.')[0], encoding='utf-8')) assert 'session_id' in decoded session_id = get_session_id(token) assert check_token_signature(token, secret_key="abc", signed=True) assert not check_token_signature(token, secret_key="qrs", signed=True) assert decoded['foo'] == 10
def test_base64_roundtrip(self) -> None: for s in [ "", "a", "ab", "abc", "abcd", "abcde", "abcdef", "abcdefg", "abcdefgh", "abcdefghi", "abcdefghijklmnopqrstuvwxyz" ]: assert s == _base64_decode(_base64_encode(s), encoding='utf-8')
def _b64_to_utf8(encoded): return codecs.decode(_base64_decode(encoded), "utf-8")