gpt4 book ai didi

mysql - nodejs - passport.use 回调返回 dataValues 和 _previousDataValues 而不是普通对象

转载 作者:行者123 更新时间:2023-12-03 22:17:14 24 4
gpt4 key购买 nike

我正在使用 passport.js用于数据库管理的身份验证和 Sequelize mysql 模块。
验证用户时发生错误:

{
"errors": {
"message": "WHERE parameter \"id\" has invalid \"undefined\" value",
"error": {}
}
}
在对用户进行身份验证时, console.log(jwtPayload)在文件 passport.js显示以下结果。
{
dataValues: {
id: '06c19eb0-995f-45f4-81d7-26ec3b401234',
email: 'CCCC@gmail.com',
createdAt: '2021-05-14T01:51:31.000Z',
updatedAt: '2021-05-14T01:51:31.000Z'
},
_previousDataValues: {
id: '06c19eb0-995f-45f4-81d7-26ec3b401234',
email: 'CCCC@gmail.com',
createdAt: '2021-05-14T01:51:31.000Z',
updatedAt: '2021-05-14T01:51:31.000Z'
},
_changed: {},
_options: {
isNewRecord: false,
_schema: null,
_schemaDelimiter: '',
raw: true,
attributes: [ 'id', 'email', 'createdAt', 'updatedAt' ]
},
isNewRecord: false,
iat: 1620961695
}
代替
  {
id: '06c19eb0-995f-45f4-81d7-26ec3b401234',
email: 'CCCC@gmail.com',
createdAt: '2021-05-14T01:51:31.000Z',
updatedAt: '2021-05-14T01:51:31.000Z'
}
Passport .js
var passport = require('passport');
const passportJWT = require("passport-jwt");
const JWTStrategy = passportJWT.Strategy;
var LocalStrategy = require('passport-local').Strategy;
const ExtractJWT = passportJWT.ExtractJwt;

const bcrypt = require('bcryptjs');

var User = require('../models/Users')

module.exports = function(passport) {


passport.use(new JWTStrategy({
jwtFromRequest: ExtractJWT.fromAuthHeaderAsBearerToken(),
secretOrKey : 'your_jwt_secret'
},
function (jwtPayload, done) {
console.log(jwtPayload)
return User.findOne({where: {id:jwtPayload.id}})
.then(user => {
return done(null, user);
})
.catch(err => {
return done(err);
});
}
));

};

最佳答案

Sequelize 返回 dataValues_previousDataValues设计属性。您可以通过一个小的修改来传递当前值。

return User.findOne({where: {id:jwtPayload.id}})
.then(user => {
return done(null, user.dataValues);
})

关于mysql - nodejs - passport.use 回调返回 dataValues 和 _previousDataValues 而不是普通对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67528737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com