我想为一个wordpress网站创建移动应用。我整合了wordpress json plugin。 我不确定在哪里可以找到用户注册和登录的服务。 请指教。
答案 0 :(得分:13)
1.在主题Refused to load the script 'https://cdn.fontawesome.com/js/stats.js' because it violates the following Content Security Policy directive: ...
文件中使用以下代码。
2.确保应在wordpress网站上安装function.php
插件
WP-REST-API
然后您的API将创建为
add_action( 'rest_api_init', 'register_api_hooks' );
function register_api_hooks() {
register_rest_route(
'custom-plugin', '/login/',
array(
'methods' => 'GET',
'callback' => 'login',
)
);
}
function login($request){
$creds = array();
$creds['user_login'] = $request["username"];
$creds['user_password'] = $request["password"];
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) )
echo $user->get_error_message();
return $user;
}
add_action( 'after_setup_theme', 'custom_login' );
使用邮递员试用您将获得http://www.url.com/wp-json/custom-plugin/login?username=xyz&password=xyz
作为回复和200
答案 1 :(得分:8)
注册用户this将通过简单地调用网址并使用GET Method向其添加数据来向您显示如何在数据库中注册一个用户。 现在,要从移动应用程序执行此操作,您只需向包含用户所需的所有数据的URL发出http请求。 This将向您展示如何从Android发出请求。
这只是为了注册用户,将会有另一个插件JSON APi Auth用于登录用户。
这些是基础,因为我现在没有太多时间,当我这样做时,我将提供全部细节和示例。但是现在这应该这样做
答案 2 :(得分:8)
我能够使用 @Salam El-Bannas'找出登录和注册。 link ,如果有人仍然需要这个,你可以去:
您需要两个插件才能完成工作:
和
对于用户注册:您需要 nonce ID ,这将是GET网址流程中注册参数的一部分(这是由插件提供的) )。阅读@Salam El-Bannas' link以获得更多理解。我在android中使用的方法是立即加载页面我用"连接..."阻止UI。消息在后台我获取nonce ID一旦完成,UI Blocking消失,nonce ID被添加到为nonce ID创建的特殊不可编辑的EditText字段,然后用户输入他/她所需的凭据,我验证它在使用我获得的随机数ID连接到服务器之前有效。服务器的结果是JSON,所以我可以使用volley和GSON处理Android代码中的其余部分。
对于用户登录:您只需要插件生成的Cookie ID,例如在我的情况下http://localhost/mylocalhost/my_api_base/user/generate_auth_cookie/?insecure=cool&email=xxx@xdfer.org&password=xxxv678
结果是这个json;
{"status":"ok","cookie":"xxxx|1486130938|Ot6yAX7iU773JnQ2zfE8sdmjt09LhHqDKSYBqtekuha|7fe58a35ab9f260c9bced9148f5cf9ae3ab56c16d7d9ce3b2db7da651d4d937d","cookie_name":"wordpress_logged_in_4132d8131ebbc6760d21627637bd4b20","user":{"id":1,"username":"administrator","nicename":"administrator","email":"xxx@xdfer.org","url":"","registered":"2016-11-02 17:46:19","displayname":"xxxx","firstname":"","lastname":"","nickname":"xxxxwedds","description":"","capabilities":"","avatar":null}}
然后你必须阅读this nice tutorial以在android中使用生成的JSON(如果你是Android登录的新手,那就是这样),否则只能自行决定。
一旦你按照我的排队流程,它真的非常简单有趣。
答案 3 :(得分:0)
与干净的类一起使用
// Register REST API endpoints
class Login_REST_API_Endpoints {
/**
* Register the routes for the objects of the controller.
*/
public static function register_endpoints() {
// endpoints will be registered here
register_rest_route( 'wp', '/login', array(
'methods' => 'GET',
'callback' => array( 'Login_REST_API_Endpoints', 'login' ),
) );
}
/**
* @param WP_REST_Request $request Full data about the request.
* @return WP_Error|WP_REST_Request
*/
public static function login( $request ) {
$data = array();
$data['user_login'] = $request["username"];
$data['user_password'] = $request["password"];
$data['remember'] = true;
$user = wp_signon( $data, false );
if ( !is_wp_error($user) )
return $user;
}
}
add_action( 'rest_api_init', array( 'Login_REST_API_Endpoints', 'register_endpoints' ) );
答案 4 :(得分:0)
尝试WP REST User具有创建用户和重置密码功能
对于登录,如果您需要对用户功能的高级控制,请使用AAM