Jon*_*der 6 javascript jwt console.log
我有一个正在尝试调试的函数,因为我收到错误。我已经解决了这个问题,因为我发现有人有类似的问题,但是能够控制台记录 JwtStrategy 中的参数之一确实很有帮助,并且让我更好地理解正在传递的内容。尽管其他人已经能够使用 Postman 及其源代码,但我似乎仍然无法安慰它。
所以我有 mongod 和 nodemon 在后面运行。我这就是函数。
module.exports = function(passport){
let opts = {}; //options is an object literal containing options to control how token is extracted.
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme("jwt")
opts.secretOrKey = config.secret; //string containing the secret or pem encoded public key verifying the tokens signiture
passport.use(new JwtStrategy(opts, (jwt_payload,done)=>{
console.log(jwt_payload);
User.getUserById(jwt_payload._doc._id, (err, user)=>{
if(err){
return done(err,false);
}
if(user){
return done(null, user);
}else{
return done(null,done);
}
});
}));
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我有一个 console.log(jwt_payload); 这是我放入 Postman Post 方法http://localhost:3000/users/authenticate 的内容:
{
"username":"bobdylan",
"password":"123456"
}
Run Code Online (Sandbox Code Playgroud)
正如我上面所说,它正在工作并返回我想要的正确 JSON。唯一的问题是这个 jwt_payload 不是控制台登录终端,所以我可以看到它通过。我在终端里有这个。
Server started on port 3000
yay i am connected to databasemongodb://localhost:27017/authapp
Run Code Online (Sandbox Code Playgroud)
所以“是的,我已连接”是 app.js 中的 console.log。为什么是这个打印而不是我上面的console.log?我希望拥有这种能力来解决未来的调试问题。
这是附加代码,显示它实际上正在工作,但控制台日志不工作
{
"sucess": true,
"token": "JWTeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1YTk2M2VmMGM3MjM4NjA0MGUwYTgwZjEiLCJuYW1lIjoiYm9iIiwiZW1haWwiOiJib2JAZHlsYW4uY29tIiwidXNlcm5hbWUiOiJib2JkeWxhbiIsInBhc3N3b3JkIjoiJDJhJDEwJHprbFBVWjI5dlJMLjRJWnlOZ1N6amVaMk1mVGVzcWdRSHIuTEkzVjhmZTIwT1NxT2p0STdLIiwiX192IjowLCJpYXQiOjE1MTk3OTk0NTcsImV4cCI6MTUyMDM5OTQ1N30.DlwzJuQayQ1zc4p8Gy5PGaE22N8ekyrBrmOhVPMkJ6Y",
"user": {
"id": "5a963ef0c72386040e0a80f1",
"name": "bob",
"username": "bobdylan",
"email": "bob@dylan.com"
}
}
Run Code Online (Sandbox Code Playgroud)
这就是请求后的响应。
nok*_*eng 11
console.log对于任何在、console.info等的输出方面苦苦挣扎的人Postman
您可以在菜单上查看邮递员控制台View >> Show Postman Console
不在菜单上查看>>开发人员>>显示开发工具
将 user.toJSON() 更改为 {data:user}。最后,它开始打印到控制台,并发现有效负载是通过一个名为 data 的对象传入的。因此,我放置了 jwt_payload.data._id 而不是上面的内容。我认为 npm 文档已经随着更新而改变。我有另一个使用 Passport 的 Mean 应用程序,并且我使用了之前有效的 jwt_payload._doc._id 。另外,我认为我不必输入 {data:user}。我想在我刚刚有用户之前。令我惊讶的是,注册和身份验证可以与 user.toJSON() 一起使用,但不能与转到个人资料页面一起使用。我真的快要放弃了,但庆幸的是我一次又一次地尝试。
| 归档时间: |
|
| 查看次数: |
8664 次 |
| 最近记录: |