Путь проверки с проверкой подлинности и без проверки подлинностиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Путь проверки с проверкой подлинности и без проверки подлинности

Сообщение Anonymous »

Итак, используя fastapi PyJWT, который работает хорошо, я изо всех сил пытаюсь добиться этой цели.

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»