簡體   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