Skip to content

Commit e5e5602

Browse files
authored
fix mgmt oken validation function (#703)
1 parent fbd1835 commit e5e5602

File tree

4 files changed

+28
-5
lines changed

4 files changed

+28
-5
lines changed

descope/auth.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,12 @@ def generate_jwt_response(
383383
token_validator=self._validate_token,
384384
)
385385

386+
# public method to validate a token from the management class
387+
def validate_token(
388+
self, token: str, audience: str | None | Iterable[str] = None
389+
) -> dict:
390+
return self._validate_token(token, audience)
391+
386392
# Validate a token and load the public key if needed
387393
def _validate_token(
388394
self, token: str, audience: str | None | Iterable[str] = None

descope/descope_client.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ def __init__(
8484
)
8585
self._mgmt = MGMT(
8686
http_client=mgmt_http_client,
87+
auth=self._auth,
8788
fga_cache_url=fga_cache_url,
8889
)
8990

descope/management/jwt.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from typing import Optional
22

33
from descope._http_base import HTTPBase
4+
from descope.auth import Auth
45
from descope.exceptions import ERROR_TYPE_INVALID_ARGUMENT, AuthException
56
from descope.jwt_common import generate_jwt_response
67
from descope.management.common import (
@@ -13,6 +14,12 @@
1314

1415

1516
class JWT(HTTPBase):
17+
_auth: Auth
18+
19+
def __init__(self, http_client, auth: Auth):
20+
super().__init__(http_client)
21+
self._auth = auth
22+
1623
def update_jwt(
1724
self, jwt: str, custom_claims: dict, refresh_duration: int = 0
1825
) -> str:
@@ -160,7 +167,9 @@ def sign_in(
160167
params=None,
161168
)
162169
resp = response.json()
163-
jwt_response = generate_jwt_response(resp, None, None)
170+
jwt_response = generate_jwt_response(
171+
resp, None, None, self._auth.validate_token
172+
)
164173
return jwt_response
165174

166175
def sign_up(
@@ -232,7 +241,9 @@ def _sign_up_internal(
232241
params=None,
233242
)
234243
resp = response.json()
235-
jwt_response = generate_jwt_response(resp, None, None)
244+
jwt_response = generate_jwt_response(
245+
resp, None, None, self._auth.validate_token
246+
)
236247
return jwt_response
237248

238249
def anonymous(
@@ -259,7 +270,9 @@ def anonymous(
259270
params=None,
260271
)
261272
resp = response.json()
262-
jwt_response = generate_jwt_response(resp, None, None)
273+
jwt_response = generate_jwt_response(
274+
resp, None, None, self._auth.validate_token
275+
)
263276
del jwt_response["firstSeen"]
264277
del jwt_response["user"]
265278
return jwt_response

descope/mgmt.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from typing import Optional
22

3+
from descope.auth import Auth
34
from descope.exceptions import ERROR_TYPE_INVALID_ARGUMENT, AuthException
45
from descope.http_client import HTTPClient
56
from descope.management.access_key import AccessKey
@@ -27,7 +28,9 @@
2728
class MGMT:
2829
_http: HTTPClient
2930

30-
def __init__(self, http_client: HTTPClient, fga_cache_url: Optional[str] = None):
31+
def __init__(
32+
self, http_client: HTTPClient, auth: Auth, fga_cache_url: Optional[str] = None
33+
):
3134
"""Create a management API facade.
3235
3336
Args:
@@ -40,7 +43,7 @@ def __init__(self, http_client: HTTPClient, fga_cache_url: Optional[str] = None)
4043
self._fga = FGA(http_client, fga_cache_url=fga_cache_url)
4144
self._flow = Flow(http_client)
4245
self._group = Group(http_client)
43-
self._jwt = JWT(http_client)
46+
self._jwt = JWT(http_client, auth=auth)
4447
self._outbound_application = OutboundApplication(http_client)
4548
self._outbound_application_by_token = OutboundApplicationByToken(http_client)
4649
self._permission = Permission(http_client)

0 commit comments

Comments
 (0)