我从这个链接获得的平均堆栈示例应用程序:https://github.com/dickeyxxx/mean-sample在我的heroku服务器,帖子和登录上完美运行,没有任何失败。它在发出请求时使用令牌。但是,由于我不熟悉这个系统,当我运行这个服务器(http://localhost:3000)时,我无法设置从邮递员发布到我的本地数据库。虽然我试图将已创建的令牌放到邮递员X-AUTH Header上,但我收到此错误: 错误:签名验证失败。
解码和编码有问题。
Fyi:请求有效并且不需要任何授权。唯一的问题是从邮递员发送邮件请求到本地运行的服务器。
有关如何使用x-auth发送帖子请求的任何想法吗?
由于我对这个问题没有深入的了解,我不确定要添加的代码行可能会有所帮助。但是来自服务器的一些代码;
- Auth.js -
if (req.headers['x-auth']) {
console.log(req.headers['x-auth']);
req.auth = jwt.decode(req.headers['x-auth'], config.secret)
}
- Users.js -
var auth = jwt.decode(req.headers['x-auth'], config.secret)
User.findOne({username: auth.username}, function (err, user) {
if (err) { return next(err) }
res.json(user)
})
答案 0 :(得分:2)
我将根据提供的信息拍摄你要去的地方......
高级用户参见第1步和第2步2下面的快速回答。
首先,您的auth.js和users.js文件会从原始仓库稍加修改。看起来他们仍然应该完成工作,但是对于其他任何人都遵循这个答案,我引用了git repo的ch8分支,因为那是处理授权的章节。像往常一样,您必须执行“npm install”,并且可能会解决在尝试启动并运行本地主机应用程序时出现的任何问题。
因为没有解释您正在测试哪些端点或者使用了哪些参数,所以我将引导您完成应该使用的端点,以防它不是您已经在做的事情。
首先,您可以检查浏览器Web检查器中调用的URL,例如Chrome检查器或Firebug。在Firebug中,您需要确保查看“控制台”选项卡,如果您更喜欢使用命令行,您甚至可以右键单击URL并选择“复制为cURL”。找到所需端点的最简单方法,以及它们使用的方法(如GET或POST)是检查登录Web应用程序时发生的情况。
假设:
如果以前的步骤一切顺利,请在Chrome的Postman应用程序中继续以下操作:
您应该看到一个带有_id属性和用户名属性的JSON对象响应。
所以,基本上你不应该首先使用X-Auth标头发出POST请求,而只是GET请求。