Как мне go запросить / вернуть тип пользователя / user_id из базы данных MySQL, используя Express при отправке токена jwt?
if (bcrypt.compareSync(req.body.password, user.password)) {
// place your query here - use `username` as a key to get user row
// store results in user object, then:
let token = jwt.sign(user.dataValues, process.env.SECRET_KEY, {
expiresIn: 1440
})
res.json({
token: token
})
будут ли тип пользователя и user_id храниться в JWT 'usertoken' и храниться в локальном хранилище?
Пока это не конфиденциальные данные - вы на безопасной стороне. Обратите внимание, что благодаря шифрованию вы полностью защищены даже при передаче конфиденциальных данных, но - это не очень хорошая практика (отправляйте только то, что вы должны вернуть пользователю, хранящемуся в вашем JWT)
Я создаю веб-приложение, использующее MySQL, express, реагирование, узел, и я впервые использую JavaScript
Отлично! Добро пожаловать в современную разработку стека:)
Редактировать:
Признаюсь - мой оригинальный ответ может сбить с толку. Итак:
- Как правило - никогда (никогда) никогда не пишите sql запросов внутри вашего внешнего проекта (с точки зрения безопасности)
- Ваш бэкэнд должен управлять связью по отношению к БД (в большинстве случаев вы должны использовать одно соединение на БД)
- Расширить свой бэкэнд с помощью записей Api, которые запрашивают вашу базу данных. Разрешить этим записям принимать параметры запроса и / или заголовки запроса
- Вызовите ваш API с указанными c параметрами запроса для запроса вашего db
В вашем примере я просто использовал ваш login
запись для размещения вашего запроса. Поскольку вы используете mysql
, рассмотрите возможность использования сторонней библиотеки, чтобы помочь вам (например, mysql2 )
В конце концов, она должна выглядеть примерно так:
if (bcrypt.compareSync(req.body.password, user.password)) {
connection.query('SELECT * FROM `users` WHERE `name` = ?', ['user name to query' ], function(err, results) {
if (err) return res.send('error: ' + err)
let token = jwt.sign(user.dataValues, process.env.SECRET_KEY, {
expiresIn: 1440
})
res.json({
token: token
})
});