Security() — fastapi Function Reference
Architecture documentation for the Security() function in param_functions.py from the fastapi codebase.
Entity Profile
Dependency Diagram
graph TD 1e2e2816_ce84_abc1_4e93_2eabfb48a792["Security()"] 24a9a43e_697f_81ce_6a7c_28a423a6f93b["param_functions.py"] 1e2e2816_ce84_abc1_4e93_2eabfb48a792 -->|defined in| 24a9a43e_697f_81ce_6a7c_28a423a6f93b style 1e2e2816_ce84_abc1_4e93_2eabfb48a792 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
fastapi/param_functions.py lines 2373–2461
def Security( # noqa: N802
dependency: Annotated[
Optional[Callable[..., Any]],
Doc(
"""
A "dependable" callable (like a function).
Don't call it directly, FastAPI will call it for you, just pass the object
directly.
Read more about it in the
[FastAPI docs for Dependencies](https://fastapi.tiangolo.com/tutorial/dependencies/)
"""
),
] = None,
*,
scopes: Annotated[
Optional[Sequence[str]],
Doc(
"""
OAuth2 scopes required for the *path operation* that uses this Security
dependency.
The term "scope" comes from the OAuth2 specification, it seems to be
intentionally vague and interpretable. It normally refers to permissions,
in cases to roles.
These scopes are integrated with OpenAPI (and the API docs at `/docs`).
So they are visible in the OpenAPI specification.
Read more about it in the
[FastAPI docs about OAuth2 scopes](https://fastapi.tiangolo.com/advanced/security/oauth2-scopes/)
"""
),
] = None,
use_cache: Annotated[
bool,
Doc(
"""
By default, after a dependency is called the first time in a request, if
the dependency is declared again for the rest of the request (for example
if the dependency is needed by several dependencies), the value will be
re-used for the rest of the request.
Set `use_cache` to `False` to disable this behavior and ensure the
dependency is called again (if declared more than once) in the same request.
Read more about it in the
[FastAPI docs about sub-dependencies](https://fastapi.tiangolo.com/tutorial/dependencies/sub-dependencies/#using-the-same-dependency-multiple-times)
"""
),
] = True,
) -> Any:
"""
Declare a FastAPI Security dependency.
The only difference with a regular dependency is that it can declare OAuth2
scopes that will be integrated with OpenAPI and the automatic UI docs (by default
at `/docs`).
It takes a single "dependable" callable (like a function).
Don't call it directly, FastAPI will call it for you.
Read more about it in the
[FastAPI docs for Security](https://fastapi.tiangolo.com/tutorial/security/) and
in the
[FastAPI docs for OAuth2 scopes](https://fastapi.tiangolo.com/advanced/security/oauth2-scopes/).
**Example**
```python
from typing import Annotated
from fastapi import Security, FastAPI
from .db import User
from .security import get_current_active_user
app = FastAPI()
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does Security() do?
Security() is a function in the fastapi codebase, defined in fastapi/param_functions.py.
Where is Security() defined?
Security() is defined in fastapi/param_functions.py at line 2373.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free