|
|
@ -32,7 +32,7 @@ OAuth2๋ (์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๊ณ ์๋) "ํจ์ค์๋ ํ๋ก์ฐ"์ ์ฌ์ฉํ |
|
|
|
* `instagram_basic`์ ํ์ด์ค๋ถ/์ธ์คํ๊ทธ๋จ์์ ์ฌ์ฉํฉ๋๋ค. |
|
|
|
* `https://www.googleapis.com/auth/drive`๋ Google์์ ์ฌ์ฉํฉ๋๋ค. |
|
|
|
|
|
|
|
/// ์ ๋ณด |
|
|
|
/// info | ์ ๋ณด |
|
|
|
|
|
|
|
OAuth2์์ "๋ฒ์"๋ ํ์ํ ํน์ ๊ถํ์ ์ ์ธํ๋ ๋ฌธ์์ด์
๋๋ค. |
|
|
|
|
|
|
@ -61,7 +61,7 @@ OAuth2์ ๊ฒฝ์ฐ ๋ฌธ์์ด์ผ ๋ฟ์
๋๋ค. |
|
|
|
* `scope`๋ ์ ํ์ ์ธ ํ๋๋ก ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด๋ก ๊ตฌ์ฑ๋ ํฐ ๋ฌธ์์ด์
๋๋ค. |
|
|
|
* `grant_type`(์ ํ์ ์ผ๋ก ์ฌ์ฉ). |
|
|
|
|
|
|
|
/// ํ |
|
|
|
/// tip | ํ |
|
|
|
|
|
|
|
OAuth2 ์ฌ์์ ์ค์ ๋ก `password`๋ผ๋ ๊ณ ์ ๊ฐ์ด ์๋ `grant_type` ํ๋๋ฅผ *์๊ตฌ*ํ์ง๋ง `OAuth2PasswordRequestForm`์ ์ด๋ฅผ ๊ฐ์ํ์ง ์์ต๋๋ค. |
|
|
|
|
|
|
@ -72,7 +72,7 @@ OAuth2 ์ฌ์์ ์ค์ ๋ก `password`๋ผ๋ ๊ณ ์ ๊ฐ์ด ์๋ `grant_type` |
|
|
|
* `client_id`(์ ํ์ ์ผ๋ก ์ฌ์ฉ) (์์ ์์๋ ํ์ํ์ง ์์ต๋๋ค). |
|
|
|
* `client_secret`(์ ํ์ ์ผ๋ก ์ฌ์ฉ) (์์ ์์๋ ํ์ํ์ง ์์ต๋๋ค). |
|
|
|
|
|
|
|
/// ์ ๋ณด |
|
|
|
/// info | ์ ๋ณด |
|
|
|
|
|
|
|
`OAuth2PasswordRequestForm`์ `OAuth2PasswordBearer`์ ๊ฐ์ด **FastAPI**์ ๋ํ ํน์ ํด๋์ค๊ฐ ์๋๋๋ค. |
|
|
|
|
|
|
@ -86,7 +86,7 @@ OAuth2 ์ฌ์์ ์ค์ ๋ก `password`๋ผ๋ ๊ณ ์ ๊ฐ์ด ์๋ `grant_type` |
|
|
|
|
|
|
|
### ํผ ๋ฐ์ดํฐ ์ฌ์ฉํ๊ธฐ |
|
|
|
|
|
|
|
/// ํ |
|
|
|
/// tip | ํ |
|
|
|
|
|
|
|
์ข
์์ฑ ํด๋์ค `OAuth2PasswordRequestForm`์ ์ธ์คํด์ค์๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ๊ธด ๋ฌธ์์ด์ด ์๋ `scope` ์์ฑ์ด ์๊ณ ๋์ ์ ์ก๋ ๊ฐ ๋ฒ์์ ๋ํ ์ค์ ๋ฌธ์์ด ๋ชฉ๋ก์ด ์๋ `scopes` ์์ฑ์ด ์์ต๋๋ค. |
|
|
|
|
|
|
@ -126,7 +126,7 @@ OAuth2 ์ฌ์์ ์ค์ ๋ก `password`๋ผ๋ ๊ณ ์ ๊ฐ์ด ์๋ `grant_type` |
|
|
|
|
|
|
|
๋ฐ๋ผ์ ํด์ปค๋ ๋ค๋ฅธ ์์คํ
์์ ๋์ผํ ์ํธ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ์๋ํ ์ ์์ต๋๋ค(๋ง์ ์ฌ์ฉ์๊ฐ ๋ชจ๋ ๊ณณ์์ ๋์ผํ ์ํธ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ด๋ ์ํํ ์ ์์ต๋๋ค). |
|
|
|
|
|
|
|
//// tab | Pํ์ด์ฌ 3.7 ์ด์ |
|
|
|
//// tab | ํ์ด์ฌ 3.7 ์ด์ |
|
|
|
|
|
|
|
{* ../../docs_src/security/tutorial003.py hl[80:83] *} |
|
|
|
|
|
|
@ -150,7 +150,7 @@ UserInDB( |
|
|
|
) |
|
|
|
``` |
|
|
|
|
|
|
|
/// ์ ๋ณด |
|
|
|
/// info | ์ ๋ณด |
|
|
|
|
|
|
|
`**user_dict`์ ๋ํ ์์ธํ ์ค๋ช
์ [**์ถ๊ฐ ๋ชจ๋ธ** ๋ฌธ์](../extra-models.md#about-user_indict){.internal-link target=_blank}๋ฅผ ๋ค์ ์ฝ์ด๋ด
์๋ค. |
|
|
|
|
|
|
@ -166,7 +166,7 @@ UserInDB( |
|
|
|
|
|
|
|
์ด ๊ฐ๋จํ ์์ ์์๋ ์์ ํ ์์ ํ์ง ์๊ณ , ๋์ผํ `username`์ ํ ํฐ์ผ๋ก ๋ฐํํฉ๋๋ค. |
|
|
|
|
|
|
|
/// ํ |
|
|
|
/// tip | ํ |
|
|
|
|
|
|
|
๋ค์ ์ฅ์์๋ ํจ์ค์๋ ํด์ฑ ๋ฐ <abbr title="JSON Web Tokens">JWT</abbr> ํ ํฐ์ ์ฌ์ฉํ์ฌ ์ค์ ๋ณด์ ๊ตฌํ์ ๋ณผ ์ ์์ต๋๋ค. |
|
|
|
|
|
|
@ -176,7 +176,7 @@ UserInDB( |
|
|
|
|
|
|
|
{* ../../docs_src/security/tutorial003.py hl[85] *} |
|
|
|
|
|
|
|
/// ํ |
|
|
|
/// tip | ํ |
|
|
|
|
|
|
|
์ฌ์์ ๋ฐ๋ผ ์ด ์์ ์ ๋์ผํ๊ฒ `access_token` ๋ฐ `token_type`์ด ํฌํจ๋ JSON์ ๋ฐํํด์ผ ํฉ๋๋ค. |
|
|
|
|
|
|
@ -202,7 +202,7 @@ UserInDB( |
|
|
|
|
|
|
|
{* ../../docs_src/security/tutorial003.py hl[58:66,69:72,90] *} |
|
|
|
|
|
|
|
/// ์ ๋ณด |
|
|
|
/// info | ์ ๋ณด |
|
|
|
|
|
|
|
์ฌ๊ธฐ์ ๋ฐํํ๋ ๊ฐ์ด `Bearer`์ธ ์ถ๊ฐ ํค๋ `WWW-Authenticate`๋ ์ฌ์์ ์ผ๋ถ์
๋๋ค. |
|
|
|
|
|
|
|