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 个结果

用于跨域身份验证的 JWT 令牌

使用 Spring Boot 进行 JWT 身份验证

在 angularjs 身份验证中处理 JWT

rest_authentication_invalid_api_key_secret JWT wordpress

基于Token的身份验证——JWT