Как ограничить пользователя по плану с помощью промежуточного программного обеспечения - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь создать экспресс-промежуточное программное обеспечение, которое будет проверять после авторизации / аутентификации пользователя, что они превысили пределы своего плана.

Я включил пример того, как будет выложена пользовательская модель (выделена только для того, чтобы показать, что нужно / общее).

Я планирую включить ограничения планов как часть отдельного файла, который я затем могу изменить и добавить при изменении / добавлении планов.

Пример того, как у меня будет файлplan.js

module.exports = {
    Starter: {
        name: 'Starter',
        limitA: 10,
        limitB: 3
    },
    Growth: {
        name: 'Growth',
        limitA: 50,
        limitB: 0 // If zero equals unlimited
    },
    Business: {
        name: 'Business',
        limitA: 0, // If zero equals unlimited
        limitB: 0 // If zero equals unlimited
    }
};

Пример пользовательской модели без пользовательских данных, только поля

// example user model
    email,
    password,
    name,
    role,
    companyID,
    company: {
        companyName,
        stripe: {
            customerId,
            subscriptionId,
            last4,
            plan
        }
    },
    lastLogin

Пример функции того, о чем я обычно думал, не завершено или не работает.

function limitCheck() {
    // Set user's plan to a variable
    let plan = req.user.company.stripe.plan

    // Want to only send an error if the user's plan exceeds their plan limits. 
    if(true) { 
        return res.status(401).json({success: false, message: 'You are at your plans limit'})
    } else {
        next();
    }
}
...