* `instagram_basic`μ νμ΄μ€λΆ/μΈμ€νκ·Έλ¨μμ μ¬μ©ν©λλ€.
* `https://www.googleapis.com/auth/drive`λ Googleμμ μ¬μ©ν©λλ€.
-/// μ 보
+/// info | μ 보
OAuth2μμ "λ²μ"λ νμν νΉμ κΆνμ μ μΈνλ λ¬Έμμ΄μ
λλ€.
* `scope`λ μ νμ μΈ νλλ‘ κ³΅λ°±μΌλ‘ ꡬλΆλ λ¬Έμμ΄λ‘ ꡬμ±λ ν° λ¬Έμμ΄μ
λλ€.
* `grant_type`(μ νμ μΌλ‘ μ¬μ©).
-/// ν
+/// tip | ν
OAuth2 μ¬μμ μ€μ λ‘ `password`λΌλ κ³ μ κ°μ΄ μλ `grant_type` νλλ₯Ό *μꡬ*νμ§λ§ `OAuth2PasswordRequestForm`μ μ΄λ₯Ό κ°μνμ§ μμ΅λλ€.
* `client_id`(μ νμ μΌλ‘ μ¬μ©) (μμ μμλ νμνμ§ μμ΅λλ€).
* `client_secret`(μ νμ μΌλ‘ μ¬μ©) (μμ μμλ νμνμ§ μμ΅λλ€).
-/// μ 보
+/// info | μ 보
`OAuth2PasswordRequestForm`μ `OAuth2PasswordBearer`μ κ°μ΄ **FastAPI**μ λν νΉμ ν΄λμ€κ° μλλλ€.
### νΌ λ°μ΄ν° μ¬μ©νκΈ°
-/// ν
+/// tip | ν
μ’
μμ± ν΄λμ€ `OAuth2PasswordRequestForm`μ μΈμ€ν΄μ€μλ 곡백μΌλ‘ ꡬλΆλ κΈ΄ λ¬Έμμ΄μ΄ μλ `scope` μμ±μ΄ μκ³ λμ μ μ‘λ κ° λ²μμ λν μ€μ λ¬Έμμ΄ λͺ©λ‘μ΄ μλ `scopes` μμ±μ΄ μμ΅λλ€.
λ°λΌμ ν΄μ»€λ λ€λ₯Έ μμ€ν
μμ λμΌν μνΈλ₯Ό μ¬μ©νλ €κ³ μλν μ μμ΅λλ€(λ§μ μ¬μ©μκ° λͺ¨λ κ³³μμ λμΌν μνΈλ₯Ό μ¬μ©νλ―λ‘ μ΄λ μνν μ μμ΅λλ€).
-//// tab | Pνμ΄μ¬ 3.7 μ΄μ
+//// tab | νμ΄μ¬ 3.7 μ΄μ
{* ../../docs_src/security/tutorial003.py hl[80:83] *}
)
```
-/// μ 보
+/// info | μ 보
`**user_dict`μ λν μμΈν μ€λͺ
μ [**μΆκ° λͺ¨λΈ** λ¬Έμ](../extra-models.md#about-user_indict){.internal-link target=_blank}λ₯Ό λ€μ μ½μ΄λ΄
μλ€.
μ΄ κ°λ¨ν μμ μμλ μμ ν μμ νμ§ μκ³ , λμΌν `username`μ ν ν°μΌλ‘ λ°νν©λλ€.
-/// ν
+/// tip | ν
λ€μ μ₯μμλ ν¨μ€μλ ν΄μ± λ° <abbr title="JSON Web Tokens">JWT</abbr> ν ν°μ μ¬μ©νμ¬ μ€μ 보μ ꡬνμ λ³Ό μ μμ΅λλ€.
{* ../../docs_src/security/tutorial003.py hl[85] *}
-/// ν
+/// tip | ν
μ¬μμ λ°λΌ μ΄ μμ μ λμΌνκ² `access_token` λ° `token_type`μ΄ ν¬ν¨λ JSONμ λ°νν΄μΌ ν©λλ€.
{* ../../docs_src/security/tutorial003.py hl[58:66,69:72,90] *}
-/// μ 보
+/// info | μ 보
μ¬κΈ°μ λ°ννλ κ°μ΄ `Bearer`μΈ μΆκ° ν€λ `WWW-Authenticate`λ μ¬μμ μΌλΆμ
λλ€.