при вводе токена в исмнии нужно что бы выводился один пользователь с таким токеном express.js
при регистрации присваиваеься токен, после если смотреть информацию о пользователе по токену должн высвечиваться один пользователь, но у меня высвечиваються все пользователи помогите решить эту проблему index.js
app.get('/auth/me', CheckAuth, async (req, res) => {
try {
const user = await getUsers(req.userId);
if (!user) {
return res.status(404).json({
message: 'Пользователь не найден'
});
}
// Убираем поле passwordHash
const { passwordHash, ...userData } = user;
res.json(userData);
} catch (error) {
console.log(error.message);
res.status(500).json({
message: 'Нет доступа',
});
}
});
user.js
async function getUsers() {
const connection = await createConnection();
try {
const query = "SELECT id, fullName, email, avatarUrl FROM user";
const [rows, fields] = await connection.execute(query);
return rows;
} catch (error) {
console.error("Ошибка при выполнении запроса к базе данных:", error);
throw error;
} finally {
connection.end();
}
}
checkauth.js
export default (req, res, next) => {
const token = (req.headers.authorization || "").replace(/Bearer\s?/, "");
if (token) {
try {
const decoded = jwt.verify(token, "secret123");
req.userId = decoded.id;
next();
} catch (error) {
return res.status(401).json({
message: "Невалидный токен",
});
}
} else {
return res.status(403).json({
message: "Отсутствует токен доступа",
});
}
};
регистрация
{
"email": "[email protected]",
"fullName": "Стас",
"avatarUrl": "https://yt3.googleusercontent.com/9K8pKqHnNx5tIzq8T4XCncUvhg5lcmPT8-ISvL99nOh7kCalkVFsAtil5l11HFK1e_O3L5y6ePI=s900-c-k-c0x00ffffff-no-rj",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MDE2ODUxOTQsImV4cCI6MTcwNDI3NzE5NH0.G7gOEsj7qEEJmSLar7Ax9NEHHITN9miIcHKGmPEvGys"
}
информация которая выводиться
{
"0": {
"id": 1,
"fullName": "Темофей",
"email": "[email protected]",
"avatarUrl": "https://yt3.googleusercontent.com/9K8pKqHnNx5tIzq8T4XCncUvhg5lcmPT8-ISvL99nOh7kCalkVFsAtil5l11HFK1e_O3L5y6ePI=s900-c-k-c0x00ffffff-no-rj"
},
"1": {
"id": 33,
"fullName": "Стас",
"email": "[email protected]",
"avatarUrl": "https://yt3.googleusercontent.com/9K8pKqHnNx5tIzq8T4XCncUvhg5lcmPT8-ISvL99nOh7kCalkVFsAtil5l11HFK1e_O3L5y6ePI=s900-c-k-c0x00ffffff-no-rj"
}
}
Ответы (1 шт):
Автор решения: Сонный кофеман
→ Ссылка
user.js
async function getUsers(userId) {
const connection = await createConnection();
try {
const query = "SELECT id, fullName, email, avatarUrl FROM user where id = " + userId;
const [rows, fields] = await connection.execute(query);
return rows;
} catch (error) {
console.error("Ошибка при выполнении запроса к базе данных:", error);
throw error;
} finally {
connection.end();
}
}