Пример #1
0
def errors(request: Request, authorize: AuthJWT = Depends()):
    """Errors page"""
    authorize.jwt_optional()

    if not authorize.get_jwt_subject():
        return RedirectResponse('/login')
    return templates.TemplateResponse("errors.html", {"request": request})
def protected(Authorize: AuthJWT = Depends()):
    Authorize.jwt_optional()

    # If no JWT is sent in with the request, get_jwt_identity()
    # will return None
    current_user = Authorize.get_jwt_identity()
    if current_user:
        return {"logged_in_as": current_user}
    else:
        return {"logged_in_as": "anonymous user"}
Пример #3
0
def auth_jwt_decode_access_token_optional(
    auth_jwt: AuthJWT = Depends(),
    scheme: HTTPAuthorizationCredentials = Depends(jwt_scheme)
    # scheme is only used for authorization in swagger UI
) -> Optional[JWTAccessToken]:
    auth_jwt.jwt_optional()
    payload = auth_jwt.get_raw_jwt()
    if not payload:
        return None
    try:
        return JWTAccessToken(**payload)
    except Exception:
        raise UnauthorizedError(message="JWT Format Error")
Пример #4
0
def read_user(user_id: int, Authorize: AuthJWT = Depends()):
    Authorize.jwt_optional()
    user = db.find_user_by_id(user_id)
    return {
        "id": user_id,
        "lastname": user[3],
        "firstname": user[4],
        "mail": user[5],
        "birthday": str(user[6]),
        "bio": user[7],
        "gender": user[8],
        "image_path": user[10],
    }
Пример #5
0
def user_login(credentials: Credentials,
               Authorize: AuthJWT = Depends(),
               db: Database = Depends(mysql_connection)):
    Authorize.jwt_optional()
    print(credentials)
    if not db.is_user_registred(credentials.email, credentials.password):
        raise HTTPException(status_code=401, detail="Bad credentials")
    access_token = Authorize.create_access_token(subject=credentials.email)
    refresh_token = Authorize.create_refresh_token(subject=credentials.email)
    response = JSONResponse(
        {"user_id": db.find_user_by_email(credentials.email)[0]})
    Authorize.set_access_cookies(access_token, response)
    Authorize.set_refresh_cookies(refresh_token, response)
    return response
Пример #6
0
 async def websocket_jwt_optional_cookies(
     websocket: WebSocket,
     csrf_token: str = Query(...),
     Authorize: AuthJWT = Depends()
 ):
     await websocket.accept()
     try:
         Authorize.jwt_optional("websocket",websocket=websocket,csrf_token=csrf_token)
         decoded_token = Authorize.get_raw_jwt()
         if decoded_token:
             await websocket.send_text("hello world")
         await websocket.send_text("hello anonym")
     except AuthJWTException as err:
         await websocket.send_text(err.message)
     await websocket.close()
 def jwt_optional(Authorize: AuthJWT = Depends()):
     Authorize.jwt_optional()
     if Authorize.get_jwt_subject():
         return {'hello': 'world'}
     return {'hello': 'anonym'}
Пример #8
0
 def jwt_optional(Authorize: AuthJWT = Depends()):
     Authorize.jwt_optional()
     return {"hello": Authorize.get_jwt_subject()}
Пример #9
0
def partially_protected(Authorize: AuthJWT = Depends()):
    Authorize.jwt_optional()

    # If no jwt is sent in the request, get_jwt_subject() will return None
    current_user = Authorize.get_jwt_subject() or "anonymous"
    return {"user": current_user}
Пример #10
0
 def jwt_optional(Authorize: AuthJWT = Depends()):
     Authorize.jwt_optional()
     return {'hello': 'world'}