1

为了获得令牌,我发布以下请求:

http://example.com/wordpress/wp-json/jwt-auth/v1/token?username=MYLOGIN&password=MYPASSWORD作为回应,我得到了令牌 - 这很好,但是......如果我不想在请求的 URL 中显示用户名和登录,即使是一次。

每个可以看到我的计算机请求的人都可以轻松获取我的登录名和密码。我可以以某种方式将这些敏感数据隐藏在请求标头而不是 url 参数中吗?我正在使用“Chrome Insomnia”应用程序来测试 REST api,在 PARAMS 和 HEADERS 旁边有一个 AUTH 选项卡,我可以在其中输入用户名和密码 - 也许这就是我可以用来发送用户数据以获取访问令牌的地方而无需蜂鸣容易看到?

我尝试使用 AUTH 选项卡登录,但作为回应:

{
    "code": "jwt_auth_bad_auth_header",
    "message": "Authorization header malformed.",
    "data": {
        "status": 403
    }
}

请不要将我送回 wp-api 文档,因为我无法通过阅读那里的文档找到明确的答案。

4

3 回答 3

1

使用OAuth

这是一种在 REST-Api 上授权自己的安全方式,无需以纯文本形式发送您的用户名和密码。

WP-API 文档有一个名为OAuth Authentication的部分。API 使用OAuth 1.0。基本上你必须安装 OAuth-Plugin,然后生成一个客户端,它会自动获取分配的密钥秘密。您可以使用这对进行安全身份验证。

您可以在我上面给出的链接中找到更详细的信息,实现起来相当简单。

于 2016-06-05T11:21:35.877 回答
1

要回答有关如何防止人们在 Insomnia 中看到您的密码的原始问题,建议您将敏感数据放在环境变量中并在请求中引用它。

您可以像这样定义您的环境 JSON...

{
  "username": "MyUsername",
  "password": "MyPassword"
}

{{ username }}并使用 Nunjucks 模板语法(如and )在 params 选项卡(或其他任何地方)中引用它们{{ password }}

这是Insomnia环境变量文档的链接。

〜格雷戈里

于 2016-08-24T00:23:51.670 回答
-1

虽然我同意 OAuth(真正的 OpenID Connect)是一个更好的解决方案,但还是使用 HTTPS。

由于 SSL/TLS 在您发出请求之前执行,因此它将通过网络加密。

于 2016-06-05T12:18:52.857 回答