Skip to content

Commit 9ebea36

Browse files
authored
Remove IAT from server side token. (#198)
* Generate JWT valid 5 seconds before generation * fix test * remove iat from server side token
1 parent 66ffc79 commit 9ebea36

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

getstream/stream.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,9 @@ def create_token(
101101
if user_id is None or user_id == "":
102102
raise ValueError("user_id is required")
103103

104-
return self._create_token(user_id=user_id, expiration=expiration)
104+
return self._create_token(
105+
user_id=user_id, expiration=expiration, iat=int(time.time()) - 5
106+
)
105107

106108
def create_call_token(
107109
self,
@@ -111,7 +113,11 @@ def create_call_token(
111113
expiration: int = None,
112114
):
113115
return self._create_token(
114-
user_id=user_id, call_cids=call_cids, role=role, expiration=expiration
116+
user_id=user_id,
117+
call_cids=call_cids,
118+
role=role,
119+
expiration=expiration,
120+
iat=int(time.time() - 5),
115121
)
116122

117123
def _create_token(
@@ -121,12 +127,14 @@ def _create_token(
121127
call_cids: List[str] = None,
122128
role: str = None,
123129
expiration=None,
130+
iat: int = None,
124131
):
125132
now = int(time.time())
126133

127-
claims = {
128-
"iat": now,
129-
}
134+
claims = {}
135+
136+
if iat is not None:
137+
claims["iat"] = iat
130138

131139
if channel_cids is not None:
132140
claims["channel_cids"] = channel_cids

tests/test_video_integration.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ def test_create_token_with_expiration(client: Stream):
6262
assert token is not None
6363
decoded = jwt.decode(token, client.api_secret, algorithms=["HS256"])
6464
assert decoded["iat"] is not None
65-
assert decoded["exp"] == decoded["iat"] + 10
65+
# 5 seconds to avoid clock skew and 10 seconds - expiration
66+
assert decoded["exp"] == decoded["iat"] + 5 + 10
6667
assert decoded["user_id"] == "tommaso"
6768

6869

0 commit comments

Comments
 (0)