繁体   English   中英

如何安全地使用与Wordpress Rest API对话的外部应用程序中的JSON Web令牌

[英]How to safely use json web tokens from external application that talks to wordpress rest api

我有一个与智威汤逊有关的问题。 这是场景。

  • A - > WordPress站点启用WP REST API;
  • 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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM