У меня есть следующие настройки для моей базы данных
CREATE TABLE IF NOT EXISTS
users(
id UUID PRIMARY KEY,
firstname VARCHAR(128) NOT NULL,
lastname VARCHAR(128) NOT NULL,
othername VARCHAR(128) NOT NULL,
email VARCHAR(128) UNIQUE NOT NULL,
phoneNumber VARCHAR(128) NOT NULL,
passportUrl VARCHAR(128) NOT NULL,
isAdmin BOOLEAN NOT NULL,
password VARCHAR(128) NOT NULL
)`;
часть моего пользовательского контроллера
const createQuery = `INSERT INTO
users(id, firstname, lastname, othername, email, phoneNumber, passportUrl, isAdmin, password)
VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9)
returning *`;
const values = [
uuidv4(),
req.body.firstname,
req.body.lastname,
req.body.othername,
req.body.email,
req.body.phoneNumber,
req.body.passportUrl,
false,
hashPassword
];
и часть моего вспомогательного файла
generateToken(id, isAdmin) {
const token = jwt.sign({
userId: id,
role: isAdmin
},
process.env.SECRET, { expiresIn: '1d' }
);
return token;
}
Iхотите, чтобы некоторые маршруты были доступны только администратору.Я не могу придумать способ проверить, является ли пользователь администратором, чтобы предоставить или ограничить доступ