| 87 | return encoded_jwt |
| 88 | |
| 89 | async def get_current_user(token: str = Depends(oauth2_scheme)): |
| 90 | credentials_exception = HTTPException( |
| 91 | status_code=status.HTTP_401_UNAUTHORIZED, |
| 92 | detail="Could not validate credentials", |
| 93 | headers={"WWW-Authenticate": "Bearer"}, |
| 94 | ) |
| 95 | try: |
| 96 | payload = jwt.decode( |
| 97 | token, |
| 98 | settings.JWT_SECRET, |
| 99 | algorithms=[settings.JWT_ALGORITHM] |
| 100 | ) |
| 101 | username: str = payload.get("sub") |
| 102 | if username is None: |
| 103 | raise credentials_exception |
| 104 | token_data = TokenData(username=username) |
| 105 | except JWTError: |
| 106 | raise credentials_exception |
| 107 | user = get_user(username=token_data.username) |
| 108 | if user is None: |
| 109 | raise credentials_exception |
| 110 | return user |
| 111 | |
| 112 | async def get_current_active_user( |
| 113 | current_user: User = Depends(get_current_user) |