|
18 | 18 | import datetime
|
19 | 19 | import os
|
20 | 20 | import jwt
|
| 21 | +from typing import Optional |
21 | 22 |
|
22 | 23 | DEFAULT_TTL = datetime.timedelta(hours=6)
|
23 | 24 | DEFAULT_LEEWAY = datetime.timedelta(minutes=1)
|
@@ -74,14 +75,18 @@ class Claims:
|
74 | 75 | class AccessToken:
|
75 | 76 | def __init__(
|
76 | 77 | self,
|
77 |
| - api_key: str = os.getenv("LIVEKIT_API_KEY", ""), |
78 |
| - api_secret: str = os.getenv("LIVEKIT_API_SECRET", ""), |
| 78 | + api_key: Optional[str] = None, |
| 79 | + api_secret: Optional[str] = None, |
79 | 80 | ) -> None:
|
| 81 | + api_key = api_key or os.getenv("LIVEKIT_API_KEY") |
| 82 | + api_secret = api_secret or os.getenv("LIVEKIT_API_SECRET") |
| 83 | + |
| 84 | + if not api_key or not api_secret: |
| 85 | + raise ValueError("api_key and api_secret must be set") |
| 86 | + |
80 | 87 | self.api_key = api_key # iss
|
81 | 88 | self.api_secret = api_secret
|
82 | 89 | self.claims = Claims()
|
83 |
| - if not api_key or not api_secret: |
84 |
| - raise ValueError("api_key and api_secret must be set") |
85 | 90 |
|
86 | 91 | # default jwt claims
|
87 | 92 | self.identity = "" # sub
|
@@ -137,11 +142,17 @@ def to_jwt(self) -> str:
|
137 | 142 | class TokenVerifier:
|
138 | 143 | def __init__(
|
139 | 144 | self,
|
140 |
| - api_key: str = os.getenv("LIVEKIT_API_KEY", ""), |
141 |
| - api_secret: str = os.getenv("LIVEKIT_API_SECRET", ""), |
| 145 | + api_key: Optional[str] = None, |
| 146 | + api_secret: Optional[str] = None, |
142 | 147 | *,
|
143 | 148 | leeway: datetime.timedelta = DEFAULT_LEEWAY,
|
144 | 149 | ) -> None:
|
| 150 | + api_key = api_key or os.getenv("LIVEKIT_API_KEY") |
| 151 | + api_secret = api_secret or os.getenv("LIVEKIT_API_SECRET") |
| 152 | + |
| 153 | + if not api_key or not api_secret: |
| 154 | + raise ValueError("api_key and api_secret must be set") |
| 155 | + |
145 | 156 | self.api_key = api_key
|
146 | 157 | self.api_secret = api_secret
|
147 | 158 | self._leeway = leeway
|
|
0 commit comments