💂♂ - 🥇 🔁¶
➡️ 🌈 👈 👆 ✔️ 👆 👩💻 🛠️ 🆔.
& 👆 ✔️ 🕸 ➕1️⃣ 🆔 ⚖️ 🎏 ➡ 🎏 🆔 (⚖️ 📱 🈸).
& 👆 💚 ✔️ 🌌 🕸 🔓 ⏮️ 👩💻, ⚙️ 🆔 & 🔐.
👥 💪 ⚙️ Oauth2️⃣ 🏗 👈 ⏮️ FastAPI.
✋️ ➡️ 🖊 👆 🕰 👂 🌕 📏 🔧 🔎 👈 🐥 🍖 ℹ 👆 💪.
➡️ ⚙️ 🧰 🚚 FastAPI 🍵 💂♂.
❔ ⚫️ 👀¶
➡️ 🥇 ⚙️ 📟 & 👀 ❔ ⚫️ 👷, & ⤴️ 👥 🔜 👟 🔙 🤔 ⚫️❔ 😥.
✍ main.py
¶
📁 🖼 📁 main.py
:
from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/items/")
async def read_items(token: str = Depends(oauth2_scheme)):
return {"token": token}
🤓 Other versions and variants
from typing import Annotated
from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/items/")
async def read_items(token: Annotated[str, Depends(oauth2_scheme)]):
return {"token": token}
from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer
from typing_extensions import Annotated
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/items/")
async def read_items(token: Annotated[str, Depends(oauth2_scheme)]):
return {"token": token}
🏃 ⚫️¶
Info
🥇 ❎ python-multipart
.
🤶 Ⓜ. pip install python-multipart
.
👉 ↩️ Oauth2️⃣ ⚙️ "📨 📊" 📨 username
& password
.
🏃 🖼 ⏮️:
$ uvicorn main:app --reload
<span style="color: green;">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
✅ ⚫️¶
🚶 🎓 🩺: http://127.0.0.1:8000/docs.
👆 🔜 👀 🕳 💖 👉:
✔ 🔼 ❗
👆 ⏪ ✔️ ✨ 🆕 "✔" 🔼.
& 👆 ➡ 🛠️ ✔️ 🐥 🔒 🔝-▶️️ ↩ 👈 👆 💪 🖊.
& 🚥 👆 🖊 ⚫️, 👆 ✔️ 🐥 ✔ 📨 🆎 username
& password
(& 🎏 📦 🏑):
Note
⚫️ 🚫 🤔 ⚫️❔ 👆 🆎 📨, ⚫️ 🏆 🚫 👷. ✋️ 👥 🔜 🤚 📤.
👉 ↗️ 🚫 🕸 🏁 👩💻, ✋️ ⚫️ 👑 🏧 🧰 📄 🖥 🌐 👆 🛠️.
⚫️ 💪 ⚙️ 🕸 🏉 (👈 💪 👆).
⚫️ 💪 ⚙️ 🥉 🥳 🈸 & ⚙️.
& ⚫️ 💪 ⚙️ 👆, ℹ, ✅ & 💯 🎏 🈸.
password
💧¶
🔜 ➡️ 🚶 🔙 👄 & 🤔 ⚫️❔ 🌐 👈.
password
"💧" 1️⃣ 🌌 ("💧") 🔬 Oauth2️⃣, 🍵 💂♂ & 🤝.
Oauth2️⃣ 🔧 👈 👩💻 ⚖️ 🛠️ 💪 🔬 💽 👈 🔓 👩💻.
✋️ 👉 💼, 🎏 FastAPI 🈸 🔜 🍵 🛠️ & 🤝.
, ➡️ 📄 ⚫️ ⚪️➡️ 👈 📉 ☝ 🎑:
- 👩💻 🆎
username
&password
🕸, & 🎯Enter
. - 🕸 (🏃♂ 👩💻 🖥) 📨 👈
username
&password
🎯 📛 👆 🛠️ (📣 ⏮️tokenUrl="token"
). - 🛠️ ✅ 👈
username
&password
, & 📨 ⏮️ "🤝" (👥 🚫 🛠️ 🙆 👉).- "🤝" 🎻 ⏮️ 🎚 👈 👥 💪 ⚙️ ⏪ ✔ 👉 👩💻.
- 🛎, 🤝 ⚒ 🕛 ⏮️ 🕰.
- , 👩💻 🔜 ✔️ 🕹 🔄 ☝ ⏪.
- & 🚥 🤝 📎, ⚠ 🌘. ⚫️ 🚫 💖 🧲 🔑 👈 🔜 👷 ♾ (🏆 💼).
- 🕸 🏪 👈 🤝 🍕 👱.
- 👩💻 🖊 🕸 🚶 ➕1️⃣ 📄 🕸 🕸 📱.
- 🕸 💪 ☕ 🌅 💽 ⚪️➡️ 🛠️.
- ✋️ ⚫️ 💪 🤝 👈 🎯 🔗.
- , 🔓 ⏮️ 👆 🛠️, ⚫️ 📨 🎚
Authorization
⏮️ 💲Bearer
➕ 🤝. - 🚥 🤝 🔌
foobar
, 🎚Authorization
🎚 🔜:Bearer foobar
.
FastAPI'Ⓜ OAuth2PasswordBearer
¶
FastAPI 🚚 📚 🧰, 🎏 🎚 ⚛, 🛠️ 👫 💂♂ ⚒.
👉 🖼 👥 🔜 ⚙️ Oauth2️⃣, ⏮️ 🔐 💧, ⚙️ 📨 🤝. 👥 👈 ⚙️ OAuth2PasswordBearer
🎓.
Info
"📨" 🤝 🚫 🕴 🎛.
✋️ ⚫️ 🏆 1️⃣ 👆 ⚙️ 💼.
& ⚫️ 💪 🏆 🏆 ⚙️ 💼, 🚥 👆 Oauth2️⃣ 🕴 & 💭 ⚫️❔ ⚫️❔ 📤 ➕1️⃣ 🎛 👈 ♣ 👻 👆 💪.
👈 💼, FastAPI 🚚 👆 ⏮️ 🧰 🏗 ⚫️.
🕐❔ 👥 ✍ 👐 OAuth2PasswordBearer
🎓 👥 🚶♀️ tokenUrl
🔢. 👉 🔢 🔌 📛 👈 👩💻 (🕸 🏃 👩💻 🖥) 🔜 ⚙️ 📨 username
& password
✔ 🤚 🤝.
from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/items/")
async def read_items(token: str = Depends(oauth2_scheme)):
return {"token": token}
🤓 Other versions and variants
from typing import Annotated
from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/items/")
async def read_items(token: Annotated[str, Depends(oauth2_scheme)]):
return {"token": token}
from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer
from typing_extensions import Annotated
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/items/")
async def read_items(token: Annotated[str, Depends(oauth2_scheme)]):
return {"token": token}
Tip
📥 tokenUrl="token"
🔗 ⚖ 📛 token
👈 👥 🚫 ✍. ⚫️ ⚖ 📛, ⚫️ 🌓 ./token
.
↩️ 👥 ⚙️ ⚖ 📛, 🚥 👆 🛠️ 🔎 https://example.com/
, ⤴️ ⚫️ 🔜 🔗 https://example.com/token
. ✋️ 🚥 👆 🛠️ 🔎 https://example.com/api/v1/
, ⤴️ ⚫️ 🔜 🔗 https://example.com/api/v1/token
.
⚙️ ⚖ 📛 ⚠ ⚒ 💭 👆 🈸 🚧 👷 🏧 ⚙️ 💼 💖 ⛅ 🗳.
👉 🔢 🚫 ✍ 👈 🔗 / ➡ 🛠️, ✋️ 📣 👈 📛 /token
🔜 1️⃣ 👈 👩💻 🔜 ⚙️ 🤚 🤝. 👈 ℹ ⚙️ 🗄, & ⤴️ 🎓 🛠️ 🧾 ⚙️.
👥 🔜 🔜 ✍ ☑ ➡ 🛠️.
Info
🚥 👆 📶 ⚠ "✍" 👆 💪 👎 👗 🔢 📛 tokenUrl
↩️ token_url
.
👈 ↩️ ⚫️ ⚙️ 🎏 📛 🗄 🔌. 👈 🚥 👆 💪 🔬 🌅 🔃 🙆 👫 💂♂ ⚖ 👆 💪 📁 & 📋 ⚫️ 🔎 🌖 ℹ 🔃 ⚫️.
oauth2_scheme
🔢 👐 OAuth2PasswordBearer
, ✋️ ⚫️ "🇧🇲".
⚫️ 💪 🤙:
oauth2_scheme(some, parameters)
, ⚫️ 💪 ⚙️ ⏮️ Depends
.
⚙️ ⚫️¶
🔜 👆 💪 🚶♀️ 👈 oauth2_scheme
🔗 ⏮️ Depends
.
from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/items/")
async def read_items(token: str = Depends(oauth2_scheme)):
return {"token": token}
🤓 Other versions and variants
from typing import Annotated
from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/items/")
async def read_items(token: Annotated[str, Depends(oauth2_scheme)]):
return {"token": token}
from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer
from typing_extensions import Annotated
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/items/")
async def read_items(token: Annotated[str, Depends(oauth2_scheme)]):
return {"token": token}
👉 🔗 🔜 🚚 str
👈 🛠️ 🔢 token
➡ 🛠️ 🔢.
FastAPI 🔜 💭 👈 ⚫️ 💪 ⚙️ 👉 🔗 🔬 "💂♂ ⚖" 🗄 🔗 (& 🏧 🛠️ 🩺).
📡 ℹ
FastAPI 🔜 💭 👈 ⚫️ 💪 ⚙️ 🎓 OAuth2PasswordBearer
(📣 🔗) 🔬 💂♂ ⚖ 🗄 ↩️ ⚫️ 😖 ⚪️➡️ fastapi.security.oauth2.OAuth2
, ❔ 🔄 😖 ⚪️➡️ fastapi.security.base.SecurityBase
.
🌐 💂♂ 🚙 👈 🛠️ ⏮️ 🗄 (& 🏧 🛠️ 🩺) 😖 ⚪️➡️ SecurityBase
, 👈 ❔ FastAPI 💪 💭 ❔ 🛠️ 👫 🗄.
⚫️❔ ⚫️ 🔨¶
⚫️ 🔜 🚶 & 👀 📨 👈 Authorization
🎚, ✅ 🚥 💲 Bearer
➕ 🤝, & 🔜 📨 🤝 str
.
🚥 ⚫️ 🚫 👀 Authorization
🎚, ⚖️ 💲 🚫 ✔️ Bearer
🤝, ⚫️ 🔜 📨 ⏮️ 4️⃣0️⃣1️⃣ 👔 📟 ❌ (UNAUTHORIZED
) 🔗.
👆 🚫 ✔️ ✅ 🚥 🤝 🔀 📨 ❌. 👆 💪 💭 👈 🚥 👆 🔢 🛠️, ⚫️ 🔜 ✔️ str
👈 🤝.
👆 💪 🔄 ⚫️ ⏪ 🎓 🩺:
👥 🚫 ✔ 🔬 🤝, ✋️ 👈 ▶️ ⏪.
🌃¶
, 3️⃣ ⚖️ 4️⃣ ➕ ⏸, 👆 ⏪ ✔️ 🐒 📨 💂♂.