Python中Okta令牌的验证

2024-10-03 15:26:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python验证Okta令牌(RS256)。我曾尝试在网上找到解决方案,但未能成功实现:

到目前为止,我已经尝试过:

from py_jwt_validator import PyJwtValidator, PyJwtException
jwt = OKTA_TOKEN
try:
    PyJwtValidator(jwt)
except PyJwtException as e:
    print(f"Exception caught. Error: {e}")

抛出错误: Okta特定:没有自定义授权服务器,无法在本地验证访问令牌

我也尝试使用okta端点/内省,但我一直得到405的响应。我尝试执行get请求以内省/client\u id=client\u id&;令牌\u类型\u提示=访问\u令牌&;令牌=令牌

我还尝试了其他几个包,包括okta_jwt(抱怨ErrorKey:“jwks_uri”)


Tags: frompyimportclientid解决方案jwtvalidator
1条回答
网友
1楼 · 发布于 2024-10-03 15:26:36

我找到了自己问题的答案。我可以使用okta的/introspect端点:

headers = {"Content-type": "application/x-www-form-urlencoded"}
http = urllib3.PoolManager()
url = ".../oauth2/v1/introspect/"

token = TOKEN
client_id = YOUR_CLIENT_ID
data = "client_id={}&token_type_hint=access_token&token={}".format(client_id, token)
response = http.request('POST', url, body=data, headers=headers)

decoded_response = response.data.decode('utf-8')
json_response = json.loads(decoded_response)

如果令牌已验证,json_响应[“active”]将为true;如果不是,则为false

相关问题 更多 >