我有一个与JWT有关的问题。这是场景。
因此,如果我想在wordpress网站(A)上发布帖子请求/创建新帖子,我可以通过提供用户名+密码然后获取JWT令牌进行身份验证来实现。如果我设置了快速登录功能,它基本上可以正常工作而不会有暴露用户名和密码的风险。然而,问题是如下:如果我需要应用程序让我们说从A获取所有帖子(wordpress网站通过rest api),但我不想要登录功能,基本上我需要一种方法来提供用户登录获取jwt令牌的凭据,但这对我没有意义,因为有人可以只检查js代码并提取该信息?
生成jwt的代码是这样的。如您所见,电子邮件和名称是javascript文件中的一次性变量。用户名和电子邮件本身未嵌入代码中。
userSchema.methods.generateJwt = function() {
var expiry = new Date();
expiry.setDate(expiry.getDate() + 7);
return jwt.sign(
{
_id: this._id,
email: this.email,
name: this.name,
exp: parseInt(expiry.getTime() / 1000)
},
jwt_secret
);
};
你唯一可能意外暴露的是jwt_secret。为此,您应该将秘密存储在dotenv文件中,而不是将其提交给版本控制。
require("dotenv").config();
const jwt_secret = process.env.JWT_SECRET;