如何从外部应用程序安全地使用json web令牌,与wordpress rest api对话
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从外部应用程序安全地使用json web令牌,与wordpress rest api对话相关的知识,希望对你有一定的参考价值。
我有一个与JWT有关的问题。这是场景。
- A - >启用了wp rest api的wordpress站点;
- B - >外部应用程序(比方说简单的javascript / jQuery应用程序)
因此,如果我想在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;
以上是关于如何从外部应用程序安全地使用json web令牌,与wordpress rest api对话的主要内容,如果未能解决你的问题,请参考以下文章
如何以安全的方式为客户提供 JSON Web 令牌(JWT)?
如何安全地保存从 auth0 登录收到的 JWT 令牌(nodejs express)