如何从外部应用程序安全地使用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)

JSON Web Token

安全访问外部 Web API .NET CORE

如何安全地存储 Discord(OAuth2) 用户的访问令牌?

JSON Web Token 如何比 cookie/session 更安全?