Пример #1
0
def test_decode_token(test_app, test_database, add_user):
    user = add_user("justatest", "*****@*****.**", "test")
    token = user.encode_token(user.id, "access")
    assert isinstance(token, bytes)
    assert User.decode_token(token) == user.id
    token = user.encode_token(user.id, "refresh")
    assert isinstance(token, bytes)
    assert User.decode_token(token) == user.id
Пример #2
0
    def post(self):
        post_data = request.get_json()
        refresh_token = post_data.get("refresh_token")
        response_object = {}

        try:
            resp = User.decode_token(refresh_token)
            user = get_user_by_id(resp)

            if not user:
                auth_namespace.abort(401, "Invalid token")

            access_token = user.encode_token(user.id, "access")
            refresh_token = user.encode_token(user.id, "refresh")

            response_object = {
                "access_token": access_token.decode(),
                "refresh_token": refresh_token.decode(),
            }
            return response_object, 200
        except jwt.ExpiredSignatureError:
            auth_namespace.abort(401, "Signature expired. Please log in again.")
            return "Signature expired. Please log in again."
        except jwt.InvalidTokenError:
            auth_namespace.abort(401, "Invalid token. Please log in again.")
Пример #3
0
 def post(self):
     """Returns all deliveries of specified user."""
     post_data = request.get_json()
     token = post_data.get("token")
     user_id = User.decode_token(token)
     user = get_user_by_id(user_id)
     if not user:
         deliveries_namespace.abort(404, f"User {user_id} does not exist")
     return user.deliveries, 200
Пример #4
0
 def get(self):
     auth_header = request.headers.get("Authorization")
     if auth_header:
         try:
             access_token = auth_header.split(" ")[1]
             resp = User.decode_token(access_token)
             user = get_user_by_id(resp)
             if not user:
                 auth_namespace.abort(401, "Invalid token")
             return user, 200
         except jwt.ExpiredSignatureError:
             auth_namespace.abort(401, "Signature expired. Please log in again.")
             return "Signature expired. Please log in again."
         except jwt.InvalidTokenError:
             auth_namespace.abort(401, "Invalid token. Please log in again.")
     else:
         auth_namespace.abort(403, "Token required")
Пример #5
0
    def post(self):
        """Creates a new delivery."""
        post_data = request.get_json()
        token = post_data.get("token")
        user_id = User.decode_token(token)
        user = get_user_by_id(user_id)
        if not user:
            deliveries_namespace.abort(404, f"User {user_id} does not exist")
        end_date_time = post_data.get("end_date_time")
        end_date_time = datetime.strptime(post_data.get("end_date_time"),
                                          '%Y-%m-%dT%H:%M:%S.%fZ')
        lat = post_data.get("lat")
        lng = post_data.get("lng")
        response_object = {}

        delivery = add_delivery(user_id=user_id,
                                end_date_time=end_date_time,
                                lat=lat,
                                lng=lng)
        user.deliveries.append(delivery)
        print(user.deliveries)
        response_object["message"] = f"{user_id}"
        return response_object, 201