未处理的拒绝类型生成 json Web 令牌时出错" converting circular structure to json "



错误的屏幕截图 我正在应用程序上实现 json Web 令牌身份验证,但收到错误,内容如下:

" 未处理的拒绝类型错误:将循环结构转换为 JSON ">

我进一步发现,当执行到达我的 webtoken 生成时会发生此错误,因为当我将其注释掉时,该错误并未发生。

请在下面找到我的代码:

const express= require("express");
const router= express.Router();
let Users = require("../models/users");
const jwt= require("jsonwebtoken");
const configuration = require("../config");
const app = express();
app.set("superSecret", configuration.secret);
//registered user submitting signin form
router.post("/users/signin", function(req, res, next){
let confirm;
Users.findOne({
where:{ username: req.body.username}
}).then(user => {
if(!user){
res.send("No such users found!")
}
else if(user){
confirmed = user.password === req.body.password;
if(confirmed){
let token = jwt.sign(user, app.get("superSecret"), 
{expiresIn: 1440}); 
//expiresInMinutes
res.json({
success: true,
message: "enjoy your json",
token: token
})
}
else{
res.send('incorrect password');
}
}
})
});

如果我注释掉let 令牌 = jwt.sign(user, app.get("superSecret(..不会有错误。 谢谢期待。

在我的用户模型下面找到。

const Sequelize= require('sequelize')
const bcrypt = require('bcrypt-nodejs')
const sequelStorage = new Sequelize('newtrial', 'olatunji', '5432', {
host: 'localhost',
dialect: 'postgres',
pool: {
max: 5,
min: 0,
idle: 10000
},
});

let Users = sequelStorage.define('users', {
username:{
type: Sequelize.STRING,
allowNull: false
},
email: {
type: Sequelize.STRING,
allowNull: false,
unique: true,
validate: { isEmail: true}
},
password:{
type: Sequelize.STRING,
allowNull:false
},
admin:{
type: Sequelize.BOOLEAN,
allowNull: false,
default: false
}
})
sequelStorage.sync()
[enter image description here][1] .catch(function(error){
console.log(error);
});
module.exports= Users;

似乎它无法在依赖项的依赖项中将这一行的有效负载(user对象(字符串化

反正可能是因为续集实体包装器,试着这样称呼吧

let token = jwt.sign(user.toJSON(), app.get("superSecret"), {expiresIn: 1440});

您可以查看此问题以获取从续集模型中获取纯对象的更多方法:续集,将实体转换为纯对象

最新更新