Example #1
0
    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
Example #2
0
 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
Example #3
0
 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)
Example #4
0
 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
Example #5
0
 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')
Example #6
0
def _b64_to_utf8(encoded):
    return codecs.decode(_base64_decode(encoded), "utf-8")