Таблица в бд:
id,login,password,token
После удачной авторизации мы генерируем новый токен и возвращаем его на клиент
Далее мы снова выполняем запрос к API get_links, но уже с токеном.
Этот токен мы проверяем через isAuthenticated, если токен настоящий, то продолжаем работу, если токена не существует в бд, то вываливаем ошибку ERROR_AUTH_TOKEN
Вопрос вот в чем, как в links.getUserLinksByID(db, 777)
вместе 777 подставить ID пользователя , который мы получили в мидлваре isAuthenticated ?
Когда я исопльзовал сессии - было все просто, но без сессий не знаю как сделать.
Подскажите плиз.
app.post("/api/v1/auth", async (req, res) => {
const { email, password } = req.body;
const user = await auth.loginUser(db, email, password);
if (user) {
const token = await auth.updateToken(db, user.id);
res.json({ message: "SECCESS", data: { token: token } });
} else {
res.json({ message: "ERROR_AUTH", data: {}});
}
});
function isAuthenticated(req, res, next) {
const { token } = req.body;
console.log('isAuthenticated token',token)
const user = auth.checkToken();
// Проверем есть ли пользователь с таким токеном,
// Если есть, то в user сохраняем объект с пользователем.
// 777,admin,admin,706669f29acdc5a14d2a2a1f24e45bd898db6898
if (user) {
return next();
} else {
res.json({ message: "ERROR_AUTH_TOKEN", data: {}});
}
}
app.post("/api/v1/links/get_links", isAuthenticated, async (req, res) => {
//777 - это ID пользователя
const userLinks = await links.getUserLinksByID(db, 777);
res.json({ message: "USER_LINKS", data: { userLinks } });
});