每次注册新用户时,jwt有效负载都相同

时间:2018-05-10 13:04:35

标签: express jwt

我是新来的。我已经按照本教程// https://devdactic.com/restful-api-user-authentication-1/

进行了操作

所以它全部正常工作,adduser是散列,登录返回jwt登录,新用户返回到route / api / login中的jwt.encode并返回一个新的jwt

我想从保护路线获取用户详细信息,例如

server.get('/ api / routeThatNeedsJWTToken',passport.authenticate('jwt',{session:false}),function(req,res){     res.json({'成功!你不能在没有令牌的情况下看到这个':'bla',user:req.user});   });

此处返回的req.user始终是我注册的第一个用户。我需要一个匹配jwt,用户ID或名称的那个。

任何帮助,或者我正在考虑从头开始并以这种方式https://www.sitepoint.com/using-json-web-tokens-node-js/

请查看server.js和config / passport.js以了解代码 https://github.com/Lambda-School-Labs/decisionjam

这是两个jwt的例子 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjaG9pY2VzIjpbXSwiY3JlYXRlZE9uIjoiMjAxOC0wNS0xMFQxMjozMjo1MS45MTJaIiwiX2lkIjoiNWFmNDNiZjNmZmNmNGNmM2JjMjBlMmFjIiwidXNlcm5hbWUiOiJwYXQxIiwiZW1haWwiOiJwYXRlbWFpbDEiLCJwYXNzd29yZCI6IiQyYSQxMCR2eERIc2RkckYxZUFDdURIODdTNlFPYlZVcTlPcUtoNmV1cmRkQWpvWTVXbkRFaXRwbGJqYSIsIl9fdiI6MH0.vUcvRiJJD5s8kWBIodbE5ZCQeRdn0r7m6b1pC0KWnYk“

JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjaG9pY2VzIjpbXSwiY3JlYXRlZE9uIjoiMjAxOC0wNS0xMFQxMjo1MjoyNy45MThaIiwiX2lkIjoiNWFmNDQwOGI4MDA2YWJmNGUxZGU5ZmIxIiwidXNlcm5hbWUiOiJwYXQyIiwiZW1haWwiOiJwYXRlbWFpbDIiLCJwYXNzd29yZCI6IiQyYSQxMCRTbGhqTHg0aXBlSzRRd2h5T0FSajRPaHZZSWpyWG1rVmFjUjdYL09kMlBpdldoTG5lcUtzSyIsIl9fdiI6MH0.NmZrAupocchKjvwUBblOpLBIFmMujaF2gZ9ii_YfK48"

1 个答案:

答案 0 :(得分:0)

在req.user中是用户保存在会话中。如果要从JWT令牌中获取用户,则应在路径声明中添加一个身份验证方法,该方法使用jwt.decode从JWT令牌中提取信息并将结果分配给req.user。 这样,请求中的用户对象将是由令牌进行身份验证的用户。