通过API从WordPress外部创建用户?

时间:2017-09-09 作者:cuzox

我安装了“JWT Authentication for WP REST API”插件,用于通过Ionic应用程序进行用户身份验证。虽然身份验证成功,但尝试从移动应用程序注册用户证明是一项特别困难的任务。

有没有办法从WordPress提供的API注册用户?或者,是否有某种首选方法在管理控制台上实现此功能以启用此行为?

我在这里完全无助。数据通过查询参数“发布”到基本url,并给出302响应,但当我通过Fiddler重新发送请求时,它给出200 OK。当我尝试在Postman上复制请求时,它也给出了200 OK。

我考虑了JSON API插件和JSON API用户插件路线,但这些似乎没有得到积极的开发。我在什么地方读到过这样一篇文章:用GET和cookie什么的?

2 个回复
SO网友:Tim Hallman

这并不使用API,但这是一个多年来我已经使用过一百次的脚本,始终有效。只需将其放在安装的根目录中,然后直接访问该文件。记住在之后立即删除该文件。我不记得我最初是从哪里得到这个剧本的。

<?php
// ADD NEW ADMIN USER TO WORDPRESS
// ----------------------------------
// Put this file in your Wordpress root directory and run it from your browser.
// Delete it when you\'re done.
require_once(\'wp-blog-header.php\');
require_once(\'wp-includes/registration.php\');
// ----------------------------------------------------
// CONFIG VARIABLES
// Make sure that you set these before running the file.
$newusername = \'your_username\';
$newpassword = \'youer_password\';
$newemail = \'[email protected]\';
// ----------------------------------------------------
// This is just a security precaution, to make sure the above "Config Variables" 
// have been changed from their default values.
if ( $newpassword != \'YOURPASSWORD\' &&
     $newemail != \'[email protected]\' &&
     $newusername !=\'YOURUSERNAME\' )
{
    // Check that user doesn\'t already exist 
    if ( !username_exists($newusername) && !email_exists($newemail) )
    {
        // Create user and set role to administrator
        $user_id = wp_create_user( $newusername, $newpassword, $newemail);
        if ( is_int($user_id) )
        {
            $wp_user_object = new WP_User($user_id);
            $wp_user_object->set_role(\'administrator\');
            echo \'Successfully created new admin user. Now delete this file!\';
        }
        else {
            echo \'Error with wp_insert_user. No users were created.\';
        }
    }
    else {
        echo \'This user or email already exists. Nothing was done.\';
    }
}
else {
    echo \'Whoops, looks like you did not set a password, username, or email\';
    echo \'before running the script. Set these variables and try again.\';
}

SO网友:Pat J

JSON API插件是不需要的,因为REST API是WordPress核心的一部分(如果我没记错的话,从4.7版开始)。

You can indeed create a user via WordPress\'s REST API — 你通过了POST 使用适当的参数请求服务器。这个POST 数据必须至少包括用户的用户名、电子邮件和密码。

请注意,您需要authenticated 以创建用户。

参考文献REST API » Create a User
  • REST API » Authentication
  • 结束