def get_token(Authorize: AuthJWT = Depends()):
        access_token = Authorize.create_access_token(subject=1, fresh=True)
        refresh_token = Authorize.create_refresh_token(subject=1)

        Authorize.set_access_cookies(access_token)
        Authorize.set_refresh_cookies(refresh_token)
        return {"access": access_token, "refresh": refresh_token}
def get_cookie(Authorize: AuthJWT = Depends()):
    access_token = Authorize.create_access_token(subject='test',fresh=True)
    refresh_token = Authorize.create_refresh_token(subject='test')

    Authorize.set_access_cookies(access_token)
    Authorize.set_refresh_cookies(refresh_token)
    return {"msg":"Successfully login"}
Пример #3
0
async def get_login_response(
    request: Request,
    response: Response,
    auth_jwt: AuthJWT,
    parameters: AuthParams,
    access_token: str,
    refresh_token: str,
) -> Any:
    if parameters.cookie:
        if access_token:
            auth_jwt.set_access_cookies(access_token, response)
        if refresh_token:
            auth_jwt.set_refresh_cookies(refresh_token, response)
    if parameters.response_type == "json":
        return schemas.StandardResponse(
            schemas.AuthTokens(
                access_token=access_token,
                refresh_token=refresh_token,
                token_type="bearer",
            ))
    if parameters.response_type == "redirect":
        redirect_url = parameters.redirect_url or str(get_base_url(request))
        if set_redirect_response(response, redirect_url):
            return None
    raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST)
Пример #4
0
 def all_token_response(Authorize: AuthJWT = Depends()):
     access_token = Authorize.create_access_token(subject=1, fresh=True)
     refresh_token = Authorize.create_refresh_token(subject=1)
     response = JSONResponse(content={"msg": "all token"})
     Authorize.set_access_cookies(access_token, response)
     Authorize.set_refresh_cookies(refresh_token, response)
     return response
Пример #5
0
def login(
        user: schemas.UserCreate,
        db: Session = Depends(get_db),
        Authorize: AuthJWT = Depends(),
):
    crud.prune_blacklist(db)
    _user = (db.query(models.User).filter(
        models.User.username == user.username.casefold()).first())
    if _user is not None and crud.verify_password(user.password,
                                                  _user.hashed_password):
        # Create Tokens
        access_token = Authorize.create_access_token(subject=user.username)
        refresh_token = Authorize.create_refresh_token(subject=user.username)

        # Assign cookies
        Authorize.set_access_cookies(access_token)
        Authorize.set_refresh_cookies(refresh_token)
        return {
            "login": "******",
            "username": _user.username,
            "access_token": access_token,
        }
    else:
        raise HTTPException(status_code=400,
                            detail="Invalid Username or Password.")
Пример #6
0
def refresh(Authorize: AuthJWT = Depends()):
    Authorize.jwt_refresh_token_required()

    current_user = Authorize.get_jwt_subject()
    new_access_token = Authorize.create_access_token(subject=current_user)

    Authorize.set_access_cookies(new_access_token)
    return {"refresh": "successful", "access_token": new_access_token}
Пример #7
0
def refresh(Authorize: AuthJWT = Depends()):

    Authorize.jwt_refresh_token_required()

    current_user = Authorize.get_jwt_subject()
    new_access_token = Authorize.create_access_token(subject=current_user)
    Authorize.set_access_cookies(new_access_token)
    return {"msg": "The token has been refresh"}
Пример #8
0
def create_token_for_user(Authorize: AuthJWT, user_id: str) -> Dict:
    response = RedirectResponse(
        f'{Config["routes"]["client"]}/login_callback?user_id={user_id}')
    access_token = Authorize.create_access_token(subject=user_id)
    refresh_token = Authorize.create_refresh_token(subject=user_id)
    Authorize.set_access_cookies(access_token, response)
    Authorize.set_refresh_cookies(refresh_token, response)
    return response
Пример #9
0
def refresh(Authorize: AuthJWT = Depends()):
    Authorize.jwt_refresh_token_required()
    current_token = Authorize.get_jwt_subject()
    new_access_token = Authorize.create_access_token(
        subject=str(current_token))
    # Set the JWT cookies in the response
    Authorize.set_access_cookies(new_access_token)
    return {"msg": "The token has been refresh"}
def create_access_and_refresh_tokens(user_id: str, Authorize: AuthJWT):
    try:
        access_token = Authorize.create_access_token(subject=user_id)
        Authorize.set_access_cookies(access_token)
        refresh_token = Authorize.create_refresh_token(subject=user_id)
        Authorize.set_refresh_cookies(refresh_token)
    except:
        raise HTTPException(
            status_code=500,
            detail=f"Error while trying to create and refresh tokens")
Пример #11
0
def login(user: User, Authorize: AuthJWT = Depends()):
    msg = password_check(user.password)
    if len(msg) >= 1:
        raise HTTPException(status_code=401,detail=msg)
    # subject identifier for who this token is for example id or username from database
    access_token = Authorize.create_access_token(subject=user.username)
    refresh_token = Authorize.create_refresh_token(subject=user.username)

    # Set the JWT cookies in the response
    Authorize.set_access_cookies(access_token)
    Authorize.set_refresh_cookies(refresh_token)
    return {"msg":"Successfully login"}
Пример #12
0
def login(user: User, Authorize: AuthJWT = Depends()):
    if user.username != "test" or user.password != "test":
        raise HTTPException(status_code=401, detail="Bad username or password")

    # Create the tokens and passing to set_access_cookies or set_refresh_cookies
    access_token = Authorize.create_access_token(subject=user.username)
    refresh_token = Authorize.create_refresh_token(subject=user.username)

    # Set the JWT cookies in the response
    Authorize.set_access_cookies(access_token)
    Authorize.set_refresh_cookies(refresh_token)
    return {"msg": "Successfully login"}
Пример #13
0
def login_for_access_token(form_data: User, authorize: AuthJWT = Depends()):
    """Check username and password and return a token"""
    user = authenticate_user(users_db, form_data.username, form_data.password)
    if not user:
        raise HTTPException(
            status_code=status.HTTP_401_UNAUTHORIZED,
            detail="Incorrect username or password",
            headers={"WWW-Authenticate": "Bearer"},
        )
    access_token = authorize.create_access_token(subject=form_data.username)
    authorize.set_access_cookies(access_token)
    return {"msg": "Successfully login"}
Пример #14
0
async def login_post(response: Response,
                     username=Form(...),
                     password=Form(...),
                     db=Depends(get_db),
                     Authorize: AuthJWT = Depends()):
    user_vals = db.query(User).filter(User.username == username).first()
    if user_vals is None:
        return {"error": "user not found"}
    if bcrypt.checkpw(password.encode(), user_vals.hashed_pword):
        access_token = Authorize.create_access_token(subject=username)
        Authorize.set_access_cookies(access_token)
        return {'access_token': access_token}
    else:
        return 'incorrect password'
Пример #15
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
def login(user: User, Authorize: AuthJWT = Depends()):
    """
    With authjwt_cookie_csrf_protect set to True, set_access_cookies() and
    set_refresh_cookies() will now also set the non-httponly CSRF cookies
    """
    if user.username != "test" or user.password != "test":
        raise HTTPException(status_code=401, detail="Bad username or password")

    # Create the tokens and passing to set_access_cookies or set_refresh_cookies
    access_token = Authorize.create_access_token(subject=user.username)
    refresh_token = Authorize.create_refresh_token(subject=user.username)

    # Set the JWT and CSRF double submit cookies in the response
    Authorize.set_access_cookies(access_token)
    Authorize.set_refresh_cookies(refresh_token)
    return {"msg": "Successfully login"}
Пример #17
0
    async def login(
            self,
            form: forms.LoginInput,
            response: Response,
            authorize: AuthJWT = Depends(),
    ) -> forms.LoginOutput:
        """Получение JWT токена для выполнения последующих операций"""

        user = await models.User.get_or_none(email=form.email)
        if (user is None) or (not utils.auth.check_password(form.password, user.password)):
            raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED)

        access_token = authorize.create_access_token(
            subject=user.email, expires_time=settings.expiration_token_time
        )

        authorize.set_access_cookies(access_token, response)
        return forms.LoginOutput(token=access_token)
Пример #18
0
async def login(request: Request, user: Login, Authorize: AuthJWT = Depends()):
    # """
    # create access and refresh token and save it as
    # httponly cookie
    # """

    # query = USER.select().where(USER.c.email == user.email)
    # data = await database.fetch_one(query)

    data = await UserSchema.get(user.email)
    if data == None or user.email != data['email'] or user.password != data[
            'password']:
        raise HTTPException(status_code=401, detail="Bad username or password")

    token = Authorize.create_access_token(subject=user.email)
    refresh_token = Authorize.create_refresh_token(subject=user.email)

    Authorize.set_access_cookies(token)
    Authorize.set_refresh_cookies(refresh_token)
    return {"msg": "Successfully login"}
Пример #19
0
 def all_token(Authorize: AuthJWT = Depends()):
     access_token = Authorize.create_access_token(subject=1, fresh=True)
     refresh_token = Authorize.create_refresh_token(subject=1)
     Authorize.set_access_cookies(access_token)
     Authorize.set_refresh_cookies(refresh_token)
     return {"msg": "all token"}
Пример #20
0
def get_token_from_email(account: AccountBasicLoginSchema,
                         Authorize: AuthJWT = Depends()):
    access_token = Authorize.create_access_token(subject=str(account.email))
    Authorize.set_access_cookies(access_token)
Пример #21
0
def update_user(user_id: int, user: User, Authorize: AuthJWT = Depends()):
    Authorize.jwt_refresh_token_required()
    db.update_user_by_id(user_id, user)
    new_access_token = Authorize.create_access_token(subject=user.email)
    Authorize.set_access_cookies(new_access_token)
    return {"detail": "User data updated"}
Пример #22
0
 def access_token(Authorize: AuthJWT = Depends()):
     access_token = Authorize.create_access_token(subject=1)
     Authorize.set_access_cookies(access_token)
     return {"msg": "access token"}