Код: Выделить всё
user_dep = Annotated[Dict,Depends(api.get_current_user)]
@app.get('/')
async def home(request: Request,user:user_dep=Optional[models.AuthorizedUser]):
print(user)
if user is not None:
return RedirectResponse(url='/dashboard/')
return templates.TemplateResponse('home.html',context={'request':request})
Выполнение именно этого фрагмента кода и когда я угадываю путь /, он возвращает 401 Unauthorized, а это не то, что я сейчас делаю для этого.
Код: Выделить всё
async def get_current_user(token: Annotated[str,Depends(oauth2_bearer)]):
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
username: str = payload.get('username')
user_id: int = payload.get('id')
rank: str = payload.get('rank')
division: str = payload.get('division')
if username is None or user_id is None:
return None
#raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Could not validate user")
return {'username': username, 'id': user_id, 'rank': rank, 'division':division}
except PyJWTError:
return None
#raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Could not validate credentials")
Я пробовал все, даже иногда удаляя, делая это:
p>
`=
Код: Выделить всё
@app.get('/')
async def home(request: Request,user:user_dep=None):
print(user)
if user is not None:
return RedirectResponse(url='/dashboard/')
return templates.TemplateResponse('home.html',context={'request':request})```
```py
@app.get('/')
async def home(request: Request):
user = await user_dep()
print(user)
if user is not None:
return RedirectResponse(url='/dashboard/')
return templates.TemplateResponse('home.html',context={'request':request})
Подробнее здесь: https://stackoverflow.com/questions/773 ... ation-path