Javascript 如何找到当前用户的id,即;“已登录”;和jwt一起?我正在尝试发出GET请求并按特定id进行筛选

Javascript 如何找到当前用户的id,即;“已登录”;和jwt一起?我正在尝试发出GET请求并按特定id进行筛选,javascript,node.js,mongodb,rest,fetch,Javascript,Node.js,Mongodb,Rest,Fetch,这是我试图访问的api中的端点 router.get('/:id', [jsonParser, jwtAuth], (req, res) => { return Teams.find().sort({creator: req.params.id}) .then(teams => res.status(200).json(teams)) .catch(err => res.status(500).json({message: 'Internal server er

这是我试图访问的api中的端点

router.get('/:id', [jsonParser, jwtAuth], (req, res) => {
return Teams.find().sort({creator: req.params.id})
    .then(teams => res.status(200).json(teams))
    .catch(err => res.status(500).json({message: 'Internal server error'}));
});
抓取可能会像这样

function viewProfile() {
const base = '/api/teams/';
const id = idFromJwt;
const url = base + id;

return fetch(url)
.then(res => res.json())
.then(response => {
//takes response and modifies DOM
    populateProfile(response);
})
.catch(err => console.log(err));
}

首先,假设您使用的是
ExpressJS
,我建议您利用中间件来处理请求身份验证并发布新的令牌

您需要记住的是,当您在JWT有效负载中验证用户时,您需要包括
userId
,以便以后能够从有效负载中检索它

当用户通过身份验证时,您必须将令牌存储在应用程序的状态或
localStorage
sessionStorage

如果您想在前端解码令牌,然后将其发送到API,您可以使用一个名为的简单模块来实现:

const jwtDecode = require("jwt-decode");
const token = window.localStorage.getItem("token"); // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWQiOiIxMjM0NTY3ODkiLCJpYXQiOjE1MTYyMzkwMjJ9.gHqSxzWpdOUL1nRAqUJg2CtjsEZZi8FLikD41i639zY
const tokenPayload = jwtDecode(token).id; // "123456789"
请记住,如果您决定使用
express jwt
,您还需要将请求头中的令牌作为
authorization
发送以进行身份验证。
希望有帮助。:)

你在那里的服务器上使用什么?什么是
jwtAuth
router
从何而来?第二个参数需要是一个函数。像这样
(req,res,next)=>{/}
如何生成jwt令牌?您可以将当前登录的用户数据添加到令牌中。使用令牌对用户进行身份验证时,可以检索当前用户对象。jwtAuth是一个MIDTLWARE,用于验证我是否拥有有效令牌。我想我应该在初始化登录时提到我的jwt存储在本地存储中。本地存储中的令牌由包含id的用户对象签名。我想我是在问如何从本地存储中的jwt中提取id。我是否可以在登录时在服务器响应中随jwt一起发送id,并将id存储在本地存储中?