|
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