【发布时间】:2021-09-11 07:15:33
【问题描述】:
这是我的app.post(),它从客户端获取表单数据。
app.post('/api/login', async (req, res) => {
const { emailid, password } = req.body
const user = await User.findOne({ emailid }).lean()
if (!user) {
return res.json({ status: 'error', error: " Invalid username/Password" })
}
if (bcrypt.compare(password, user.password)) {
const token = jwt.sign({ id: user._id, emailid: user.emailid }, 'secret', { expiresIn: '24h' })
return res.json({ status: 'ok', data: token, user_id: user._id })
}
res.json({ status: 'error', error: " Invalid username/Password" })
})
我需要将jwt 令牌或user_id 传递给我的
app.get('/', (req,res)=>{
res.render('index')
})
【问题讨论】:
-
/api/login路由只会执行一次,但我认为后续的几个请求都需要 JWT。因此,您必须将令牌发送回客户端,然后客户端必须在每个后续请求中包含它(作为Authorization: Bearer <JWT>标头)。另见auth0.com/docs/authorization/flows/authorization-code-flow。因此,实际上是客户端在做“令牌传递”。
标签: node.js mongodb express middleware