Creating scope-based authorization
FastAPI fully supports scope-based authentication, which uses the scopes
parameter of the OAuth2 protocol to specify which endpoints are accessible to a group of users. A scopes
parameter is a kind of permission placed in a token to provide additional fine-grained restrictions to users. In this version of the project, ch07e
, we will be showcasing OAuth2 password-based authentication with user authorization.
Customizing the OAuth2 class
First, we need to create a custom class that inherits the properties of the OAuth2
API class from the fastapi.security
module to include the scopes
parameter or "role" options in the user credentials. The following is the OAuth2PasswordBearerScopes
class, a custom OAuth2 class that will implement the authentication flow with authorization:
class OAuth2PasswordBearerScopes(OAuth2): def __init__( self, ...