Har*_*has 9 okta auth0 fastapi
在使用 fastapi 的 okta 应用程序设置 Auth0 身份验证时,我们收到以下错误,
jwt.exceptions.PyJWKSetError: The JWK Set did not contain any usable keys
Run Code Online (Sandbox Code Playgroud)
我们遵循以下链接中详细说明的指南来使用 auth0 实施快速 api 授权。
https://auth0.com/blog/build-and-secure-fastapi-server-with-auth0/
以下代码用于验证创建的令牌。给定的错误出现在验证函数的第一个 try 块中。
class VerifyToken():
"""Does all the token verification using PyJWT"""
def __init__(self, token):
self.token = token
self.config = set_up()
print(self.config)
# This gets the JWKS from a given URL and does processing so you can
# use any of the keys available
jwks_url = f'https://{self.config["DOMAIN"]}/.well-known/jwks.json'
self.jwks_client = jwt.PyJWKClient(jwks_url)
def verify(self):
# This gets the 'kid' from the passed token
try:
self.signing_key = self.jwks_client.get_signing_key_from_jwt(
self.token
).key
except jwt.exceptions.PyJWKClientError as error:
print(error)
return {"status": "error", "msg": error.__str__()}
except jwt.exceptions.DecodeError as error:
return {"status": "error", "msg": error.__str__()}
try:
print(self.config)
payload = jwt.decode(
self.token,
self.signing_key,
algorithms=self.config["ALGORITHMS"],
audience=self.config["API_AUDIENCE"],
issuer=self.config["ISSUER"],
options={"verify_exp": False}
)
except Exception as e:
return {"status": "error", "message": str(e)}
return payload
Run Code Online (Sandbox Code Playgroud)
Har*_*has 15
如果出现此错误,请检查您已安装的 pyjwt 库。它不适用于 python 中的默认 pyjwt 库。必须通过以下方式安装 pyjwt[crypto],
pip install pyjwt[crypto]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2423 次 |
| 最近记录: |