Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
✨ Add
auto_error
to security utils to allow them to be optional, also allowing the declaration of multiple security schemes.When setting
auto_error=False
, instead of raising/returning an HTTP 403 "Not authenticated" error to the client, it returnsNone
to the parameter in a path operation function or dependency.This makes it possible to have optional authentication.
It also allows to declare multiple optional security schemes in a dependency. And then, inside of the dependency, enforce that at least one is provided/validated. This can be used when allowing authentication with username/password using
OAuth2PasswordBearer
but also with other OAuth2 providers (Google, Facebook, etc).To use it, in the security utils, instead of writing:
write:
It can also be used to customize the error returned, overwriting the default "Not authenticated" with something different, by taking the result of the dependency and if it's
None
, raising anHTTPException
with a customdetail
message.