WP-API 的 JWT 身份验证 - 发布到 ACF 字段
Posted
技术标签:
【中文标题】WP-API 的 JWT 身份验证 - 发布到 ACF 字段【英文标题】:JWT Authentication for WP-API - POST TO ACF Fields 【发布时间】:2021-10-08 02:30:36 【问题描述】:我正在尝试通过 JWT 身份验证为 WP-API 插件制作一个 Auth。我正在尝试遵循本教程 - 步骤,在此链接中: https://firxworx.com/blog/wordpress/using-the-wordpress-rest-api-with-jwt-authentication/
因此,我在我的 functions.php 文件中创建了一个函数,在我的子主题中,并在我创建的自定义页面模板的标题中调用此函数,在 get_header(); 之前功能所以,我现在的代码是这样的:
function getToken()
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://www.example.com/wp-json/jwt-auth/v1/token');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=admin&password=password');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/x-www-form-urlencoded',
"cache-control: no-cache",
));
$server_output = curl_exec($ch);
$token_result = json_decode($server_output);
if(isset($token_result->token))
return $token_result->token;
else
return $token_result->message;
但是,仍然出现此错误: “在 WordPress 上获取 JWT 令牌以进行 API 集成的响应无效”
我想进行此 API 调用,以验证用户,然后再继续执行我的脚本。如果没有这个验证,PHP 应该会停止执行。
执行此 API 调用后,我想在某些自定义帖子类型中拥有的一些高级自定义字段(ACF Pro 插件)中进行 POST..但这是另一个问题..
任何建议或任何其他解决方案,可能会有所帮助,请告诉我
*已编辑
发现了一些东西.. 因为 Wordfence - 验证码我无法获得令牌。它告诉我通过发送的电子邮件进行验证。因此,wordfence 说:过滤器“wordfence_ls_require_captcha”可用于在您选择的情况下禁用 CAPTCHA。这对于包含 REST 端点和不需要验证码的身份验证的插件可能很有用。您的过滤器应在必要时返回 false 以绕过 CAPTCHA 要求,否则在需要 CAPTCHA 时返回 true”。我如何使用此过滤器以及在哪里使用?如何像插件建议的那样在此过滤器中返回 false?
这里也有同样的问题:https://wordpress.org/support/topic/recaptcha-and-rest-api/ 但没有发布解决方案
任何人,如何禁用通过 Wordfence 发送电子邮件的验证?因为这是问题
【问题讨论】:
【参考方案1】:终于,我得到了这个工作! 感谢这篇文章How to disable auth verification email send, from Wordfence?
和@mircobabini 帮助。
我在我的子主题的functions.php文件中添加了过滤器,如下所示:
add_filter( 'wordfence_ls_require_captcha', '__return_false' );
因此,通过 Wordfence 登录的验证电子邮件不再发送,我可以继续执行我的代码。
*我已经编辑了我的getToken()
函数,因为其中有一些错误!
【讨论】:
以上是关于WP-API 的 JWT 身份验证 - 发布到 ACF 字段的主要内容,如果未能解决你的问题,请参考以下文章
将 Woocommerce REST API 与 WP-API 的 JWT 身份验证一起使用时,无法获得超过 12 个结果