HttpException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Nicht genügend Berechtigungen",headers={"WWW-Authenticate":authenticate_value}) Normalerweise, weil der anfordernde Benutzer nicht über ausreichende Berechtigungen zum Ausführen des Vorgangs verfügt. Dies kann daran liegen, dass der Benutzer nicht angemeldet ist oder die Anmeldung abgelaufen ist oder der Benutzer nicht über ausreichende Berechtigungen für den Zugriff auf die Ressource verfügt.
Dieser Fehler kann durch das Auslösen einer HTTPException in Ihrem Code ausgelöst werden oder durch unzureichende angeforderte Benutzerberechtigungen verursacht werden.
Normalerweise sollten Sie in der Routing-Funktion prüfen, ob die Berechtigungen des anfragenden Benutzers ausreichend sind, und wenn nicht, diese Ausnahme auslösen.
Zum Beispiel:
from fastapi import FastAPI, HTTP
Word
Bearerapp = Fastapi ()
# definiert das Sicherheitsschema. OAUTH2PASSWORDBEARER (tokenurl = "/token") @app .post("/items/ ")async def create_item(item: Item,Authorization: str = Depends(oauth2_scheme)):wenn nicht check_user_has_permission(Authorization):raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail ="Nicht genügend Berechtigungen", headers={"WWW-Authenticate":authenticate_value})return {"item": item}在上面的示例中,我们使用 OAuth2PasswordBearer 来验证请求用户是否已经登录,并在路由函数中使用 check_user_has_permission 检查请求用户是否有权限访问该资源,如果用户权限不足,将会抛出 HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Not enough permissions",headers={"WWW-Authenticate": authenticate_value}) 这只是一个简单的示例,具体实现还需根据项目具体需求来实现。
from fastapi import FastAPI, HTTPException, Depends from fastapi.security import OAuth2PasswordBearer app = FastAPI() # define the security scheme for the api oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/token") @app.post("/items/") async def create_item(item: Item, Authorization: str = Depends(oauth2_scheme)): if not check_user_has_permission(Authorization): raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Not enough permissions",headers={"WWW-Authenticate": authenticate_value}) return {"item": item}
Datenbank
hat oder die Benutzerrolle imJwt
-Token lesen.Wenn der Benutzer nicht über ausreichende Berechtigungen verfügt, wird eine HTTPException ausgelöst, eine Antwort mit dem Statuscode 401 zurückgegeben und das WWW-Authenticate-Feld im Antwortheader gesetzt. Auf diese Weise kann der Browser bzw. Client erkennen, dass sich der Benutzer erneut anmelden muss.
Das obige ist der detaillierte Inhalt vonWarum HTTPException(status_code=status.HTTP_401_UNAUTHORIZED,detail=\'Nicht genügend Berechtigungen\',headers={\'WWW-Authenticate\':authenticate_value},) und wie man es löst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!