node.js - 如何将标头身份验证承载中的令牌发送到浏览器
问题描述
这是我在帮助登录路由器中的代码,所以我在确认登录后尝试将 cookie 设置为浏览器
exports.signin = (req,res) => {
db.User.findOne({email:req.body.email}).then(user => {
user.comparePassword(req.body.password,function(err,isMatch){
if(isMatch){
let token = jwt.sign({userId: user.id},process.env.SECRET_KEY,{ expiresIn: 60*5 });
res.setHeader() //here I wanna send header Bearer to the browser
} else {
res.status(400).json({message:"Incorrect Password!"});
}
})
})
.catch(err => {
return res.status(404).send('No user found.');
})**strong text**
}
解决方案
在 Node.js res.setHeader() 和 Express js 中 res.header() 是 res.set() 方法的别名。
您可以通过以下方式使用:
res.setHeader('Authorization', 'Bearer '+ token);
res.header('Authorization', 'Bearer '+ token);
但我建议您阅读 jwt 示例(angularjs & node):https ://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543
推荐阅读
- laravel - 断言 Laravel 命令在测试中被调用
- c# - 将文件上传到服务器时出现“System.Web.HttpException”类型的异常
- laravel - htmlspecialchars() 期望参数 1 是字符串,我的代码中给出的对象
- c - 在 uint64 中对 38 位进行基数排序?
- protocol-buffers - 如何以 protobuf 3 格式表示 XMLGregorianCalendar
- python - Jupyter Notebook 中的 Python 3 不起作用
- c# - 无法运行 EdgeDriver 自动化测试:Azure DevOps 的 VsTest VM 在默认安装位置没有 Edge 二进制文件?
- jquery - Laravel - 删除按钮在动态输入表单中不起作用
- angular - 使用通过 ngTemplateOutlet 传入的选择器投影内容
- java - 运行“mvn install”后出现错误:“java.io.IOException:基础输入流返回零字节”