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"}
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")
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], }
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
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'}
def jwt_optional(Authorize: AuthJWT = Depends()): Authorize.jwt_optional() return {"hello": Authorize.get_jwt_subject()}
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}
def jwt_optional(Authorize: AuthJWT = Depends()): Authorize.jwt_optional() return {'hello': 'world'}