Rumah > Artikel > pembangunan bahagian belakang > Penyelesaian kepada ralat fastapi HTTPException(status_code=status.HTTP_401_UNAUTHORIZED,detail=\'E-mel atau kata laluan salah\',headers={\'WWW-Authenticate\': \'Asas\'},)
. : " Asas"},) Sebab mengapa Fast
api muncul dalam
pythonmenolak permintaan dan mengembalikan kod status 401 Tidak dibenarkan. headers={"WWW-Authenticate": "Asas"}, menunjukkan bahawa kaedah pengesahan ialah pengesahan AsasTeruskan untuk menerangkan, dalam FastAPI, ralat 401 Tanpa Kebenaran dilemparkan dengan menggunakan raise HTTPException(status_code=status.HTTP_401_UNA.UTHORIZED,. .) . Ralat ini menunjukkan bahawa pengguna tidak disahkan semasa cuba mengakses sumber yang dilindungi atau tidak mempunyai kebenaran yang mencukupi semasa cuba melakukan operasi tertentu. Dalam kes ini, pelayan biasanya mengembalikan pengepala WWW-Authenticate untuk mengarahkan klien cara untuk mengesahkan. Dalam contoh ini, nilai pengepala WWW-Authenticate ialah Asas, menunjukkan bahawa pelanggan harus menggunakan pengesahan Asas. Untuk mengelakkan ralat ini, e-mel dan kata laluan pengguna hendaklah disahkan dengan betul semasa log masuk. Cara menyelesaikanUntuk menyelesaikan ralat ini, e-mel dan kata laluan pengguna hendaklah disahkan dengan betul semasa log masuk. Ini boleh dicapai dengan membandingkan e-mel dan kata laluan yang dimasukkan oleh pengguna dengan e-mel dan kata laluan yang disimpan dalam pangkalan data. Jika kedua-dua e-mel dan kata laluan sepadan, pengguna berjaya log masuk, jika tidak log masuk gagal. Adalah disyorkan untuk mengesahkan sama ada e-mel dan kata laluan pengguna sepadan semasa log masuk, dan mengembalikan ralat 401 Tanpa Kebenaran apabila pengesahan pengguna gagal.
Selain itu, pertimbangkan untuk menggunakan perpustakaan pihak ketiga atau
rangka kerja(seperti
flask-Log Masuk) untuk memudahkan proses pengesahan dan kebenaran pengguna.
Sudah tentu, berikut ialah contoh yang menunjukkan cara mengesahkan log masuk pengguna dan mengendalikan 401 ralat Tanpa Kebenaran dalam FastAPI:
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
app = FastAPI()
class User(BaseModel):
email: str
password: str
@app.post("/login")
async def login(user: User):
# 模拟查询用户是否存在
if user.email != "test@example.com" or user.password != "password":
raise HTTPException(status_code=401, detail="Incorrect email or password")
return {"message": "Welcome"}
Dalam contoh ini, kami mentakrifkan model Pengguna dengan medan e-mel dan kata laluan. Dalam fungsi log masuk kami menyemak sama ada e-mel dan kata laluan yang dimasukkan oleh pengguna sepadan dengan e-mel dan kata laluan yang dijangkakan. Jika tiada padanan, HTTPException dilemparkan dengan kod status 401 Tanpa Kebenaran dan mesej ralat "E-mel atau kata laluan salah".
Ini hanyalah contoh mudah Dalam aplikasi sebenar, anda mungkin perlu menggunakan
pangkalan datauntuk menyimpan data pengguna dan penyulitan untuk menyimpan kata laluan, tetapi contoh ini sudah cukup untuk menggambarkan cara menyelesaikan situasi ini.
Atas ialah kandungan terperinci Penyelesaian kepada ralat fastapi HTTPException(status_code=status.HTTP_401_UNAUTHORIZED,detail=\'E-mel atau kata laluan salah\',headers={\'WWW-Authenticate\': \'Asas\'},). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!