WP-API - POST TO ACF 字段的 JWT 身份验证
JWT Authentication for WP-API - POST TO ACF Fields
我正在尝试通过 JWT 身份验证为 WP-API 插件创建一个 Auth。我正在尝试按照本教程的步骤进行操作,在此 link 中:
https://firxworx.com/blog/wordpress/using-the-wordpress-rest-api-with-jwt-authentication/
因此,我在我的 functions.php 文件中创建了一个函数,在我的 child 主题中,并在我创建的自定义页面模板的 header 中调用了这个函数,在 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 上为 API 集成获取 JWT 令牌的响应无效”
我想进行此 API 调用,以便在执行我的脚本之前验证用户。如果没有这个验证,PHP 应该停止执行。
完成此 API 调用后,我想在某些自定义帖子类型中的一些高级自定义字段(ACF Pro 插件)中创建一个 POST..但这是另一个问题..
关于此的任何建议或任何其他解决方案可能会有所帮助,请告诉我
*已编辑
发现了一些东西.. 因为 Wordfence - 验证码我无法获得令牌。它告诉我通过发送的电子邮件进行验证。因此,wordfence 说:过滤器“wordfence_ls_require_captcha”可用于在您选择的情况下禁用验证码。这对于包含不需要验证码的身份验证的 REST 端点的插件可能很有用。您的过滤器应该 return false 以在必要时绕过 CAPTCHA 要求,或者在需要 CAPTCHA 时为 true。我如何使用此过滤器以及在哪里使用?如何在此过滤器中使用 return false 之类的插件建议?
这里也有同样的问题:
https://wordpress.org/support/topic/recaptcha-and-rest-api/
但没有发布解决方案
任何人,如何禁用通过 Wordfence 发送电子邮件的验证?因为这就是问题所在
我终于成功了!
多亏了这个post
和@mircobabini 帮助。
我在我的 functions.php 子主题文件中添加了过滤器,如下所示:
add_filter( 'wordfence_ls_require_captcha', '__return_false' );
因此,通过 Wordfence 登录的验证电子邮件不再发送,我可以继续我的代码。
*我已经编辑了我的 getToken()
函数,因为其中有一些错误!
我正在尝试通过 JWT 身份验证为 WP-API 插件创建一个 Auth。我正在尝试按照本教程的步骤进行操作,在此 link 中: https://firxworx.com/blog/wordpress/using-the-wordpress-rest-api-with-jwt-authentication/
因此,我在我的 functions.php 文件中创建了一个函数,在我的 child 主题中,并在我创建的自定义页面模板的 header 中调用了这个函数,在 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 上为 API 集成获取 JWT 令牌的响应无效”
我想进行此 API 调用,以便在执行我的脚本之前验证用户。如果没有这个验证,PHP 应该停止执行。
完成此 API 调用后,我想在某些自定义帖子类型中的一些高级自定义字段(ACF Pro 插件)中创建一个 POST..但这是另一个问题..
关于此的任何建议或任何其他解决方案可能会有所帮助,请告诉我
*已编辑
发现了一些东西.. 因为 Wordfence - 验证码我无法获得令牌。它告诉我通过发送的电子邮件进行验证。因此,wordfence 说:过滤器“wordfence_ls_require_captcha”可用于在您选择的情况下禁用验证码。这对于包含不需要验证码的身份验证的 REST 端点的插件可能很有用。您的过滤器应该 return false 以在必要时绕过 CAPTCHA 要求,或者在需要 CAPTCHA 时为 true。我如何使用此过滤器以及在哪里使用?如何在此过滤器中使用 return false 之类的插件建议?
这里也有同样的问题:
https://wordpress.org/support/topic/recaptcha-and-rest-api/
但没有发布解决方案
任何人,如何禁用通过 Wordfence 发送电子邮件的验证?因为这就是问题所在
我终于成功了!
多亏了这个post
和@mircobabini 帮助。
我在我的 functions.php 子主题文件中添加了过滤器,如下所示:
add_filter( 'wordfence_ls_require_captcha', '__return_false' );
因此,通过 Wordfence 登录的验证电子邮件不再发送,我可以继续我的代码。
*我已经编辑了我的 getToken()
函数,因为其中有一些错误!