Ejemplo n.º 1
0
def signin():
    username = request.json.get('username', None)
    password = request.json.get('password', None)
    model = {'name': username, 'password': password}

    if UserTb.isUnAuthUser(user=model):
        return jsonify({"msg": "Bad username or password"}), 401

    # Store the tokens in redis with a status of not currently revoked. We
    # can use the `get_jti()` method to get the unique identifier string for
    # each token. We can also set an expires time on these tokens in redis,
    # so they will get automatically removed after they expire. We will set
    # everything to be automatically removed shortly after the token expires
    user = UserTb.getUser(user=model)
    access_token = create_access_token(identity=user['id'], fresh=True)
    refresh_token = create_refresh_token(identity=user['id'])

    access_jti = get_jti(encoded_token=access_token)
    refresh_jti = get_jti(encoded_token=refresh_token)
    revoked_store.set(access_jti, 'false', ACCESS_EXPIRES * 1.2)
    revoked_store.set(refresh_jti, 'false', REFRESH_EXPIRES * 1.2)

    resp = jsonify({'signin': True})
    set_access_cookies(resp, access_token)
    set_refresh_cookies(resp, refresh_token)

    return resp, 201
Ejemplo n.º 2
0
def create_dev_token():
    userid = get_jwt_identity()
    expires = timedelta(days=365)
    token = create_access_token(userid, expires_delta=expires, fresh=True)
    jti = get_jti(encoded_token=token)
    revoked_store.set(jti, 'false', expires * 1.2)
    return jsonify({'token': token}), 201
Ejemplo n.º 3
0
def signout_refresh():
    jti = get_raw_jwt()['jti']
    revoked_store.set(jti, 'true', REFRESH_EXPIRES * 1.2)

    resp = jsonify({'signout': True})
    unset_jwt_cookies(resp)

    return resp, 200
Ejemplo n.º 4
0
def refresh():
    current_userid = get_jwt_identity()
    new_token = create_access_token(identity=current_userid, fresh=False)
    access_jti = get_jti(encoded_token=new_token)
    revoked_store.set(access_jti, 'false', ACCESS_EXPIRES * 1.2)

    resp = jsonify({'refresh': True})
    set_access_cookies(resp, new_token)

    return resp, 201
Ejemplo n.º 5
0
def fresh_signin():
    username = request.json.get('username', None)
    password = request.json.get('password', None)
    model = {'name': username, 'password': password}

    if User.isUnAuthUser(model):
        return jsonify({"msg": "Bad username or password"}), 401

    user = User.getUser(model.name)
    new_token = create_access_token(identity=user.id, fresh=True)
    access_jti = get_jti(encoded_token=new_token)
    revoked_store.set(access_jti, 'false', ACCESS_EXPIRES * 1.2)

    resp = jsonify({'fresh_signin': True})
    set_access_cookies(resp, new_token)

    return resp, 201
Ejemplo n.º 6
0
def signout():
    jti = get_raw_jwt()['jti']
    revoked_store.set(jti, 'true', ACCESS_EXPIRES * 1.2)
    resp = jsonify({'signout': True})

    return resp, 200