messages
resource if users have the manager access level, and a write access to that resource if they have the administrator access level.You can define allowed permissions in the Permissions view of the Auth0 Dashboard’s APIs section.read:messages
scope.requirements.txt
:JWTBearerTokenValidator
validator with a few tweaks to make sure it conforms to our requirements on validating Access Tokens.To create our Auth0JWTBearerTokenValidator
we need to pass it our domain
and audience
(API Identifier). It will then get the public key required to verify the token’s signature and pass it to the JWTBearerTokenValidator
class.We’ll then override the class’s claims_options
to make sure the token’s expiry, audience and issue claims are validated according to our requirements.Next we’ll create a Flask application with 3 API routes:/api/public
A public endpoint that requires no authentication./api/private
A private endpoint that requires a valid Access Token JWT./api/private-scoped
A private endpoint that requires a valid Access Token JWT that contains the given scope
.require_auth
decorator which is a ResourceProtector
that uses the Auth0JWTBearerTokenValidator
we created earlier.To create the Auth0JWTBearerTokenValidator
we’ll pass it our tenant’s domain and the API Identifier of the API we created earlier.The require_auth
decorator on the private_scoped
route accepts an additional argument "read:messages"
, which checks the Access Token for the Permission (Scope) we created earlier.Authorization
header in your requests.messages
resource if users have the manager access level, and a write access to that resource if they have the administrator access level.You can define allowed permissions in the Permissions view of the Auth0 Dashboard’s APIs section.read:messages
scope.requirements.txt
:JWTBearerTokenValidator
validator with a few tweaks to make sure it conforms to our requirements on validating Access Tokens.To create our Auth0JWTBearerTokenValidator
we need to pass it our domain
and audience
(API Identifier). It will then get the public key required to verify the token’s signature and pass it to the JWTBearerTokenValidator
class.We’ll then override the class’s claims_options
to make sure the token’s expiry, audience and issue claims are validated according to our requirements./api/public
A public endpoint that requires no authentication./api/private
A private endpoint that requires a valid Access Token JWT./api/private-scoped
A private endpoint that requires a valid Access Token JWT that contains the given scope
.require_auth
decorator which is a ResourceProtector
that uses the Auth0JWTBearerTokenValidator
we created earlier.To create the Auth0JWTBearerTokenValidator
we’ll pass it our tenant’s domain and the API Identifier of the API we created earlier.The require_auth
decorator on the private_scoped
route accepts an additional argument "read:messages"
, which checks the Access Token for the Permission (Scope) we created earlier.Authorization
header in your requests.