有3种方法可以使用REST api端点请求对用户进行身份验证,
1-使用Cookie,这是WordPress在POST请求中跟踪经过身份验证的用户的方式。如果在REST请求中传递身份验证详细信息,请使用wp_signon() function 要登录用户,如果成功,请使用wp\\u set\\u auth\\u cookie()设置身份验证cookiefunction,
$creds = array(
\'user_login\' => \'example\',
\'user_password\' => \'plaintextpw\',
\'remember\' => true
);
$user = wp_signon( $creds, false );
if ( is_wp_error( $user ) ) {
$msg = $user->get_error_message();
}else{
wp_clear_auth_cookie();
wp_set_current_user ( $user->ID ); // Set the current user detail
wp_set_auth_cookie ( $user->ID ); // Set auth details in cookie
$msg = "Logged in successfully";
}
你可以在这个WordPress论坛上找到一个讨论
thread.
2-对自己的服务器使用基本身份验证请求
这里的想法是,对于您向服务器发出的每个REST请求,您都会(每次)通过SSL连接传递用户的凭据。WordPress API组提供plugin 在他们的GitHub repo上为您执行此操作,这允许您对用户的凭据进行编码,并在另一端对其进行解码以进行身份验证,例如,删除服务器上用户的帖子,
let user=\'...\', pw=\'...\';
jQuery.ajax({
url: \'http://your-domain/wp-json/wp/v2/posts/50\',
method: \'DELETE\',
crossDomain: true,
beforeSend: function ( xhr ) {
xhr.setRequestHeader( \'Authorization\', \'Basic \' + Base64.encode( user + \':\' + pw ) );
},
success: function( data, txtStatus, xhr ) {
console.log( data );
console.log( xhr.status );
}
});
有关更多详细信息,请参阅此详细信息
tutorial3-用户第三方身份验证,如开放OAuth.
这是Google使用的,并允许您的站点根据用户的Google登录凭据识别用户。WordPress.com 还将此方法用于其博客服务身份验证。
这样做的目的是让您的用户登录到一个能够识别他们的服务器(使用浏览器上的cookie)。
经过身份验证后,您的页面(反应式js)向身份验证机构/服务器发出请求,如果用户确认,该请求将返回一个访问令牌,该令牌用于对后续的REST请求进行身份验证。
您可以使用第三方身份验证服务,如Google,在这种情况下,您可以关注以下youtubetutorial 这将引导您完成设置Google API项目的基础知识,以允许您的应用程序发出身份验证请求。
或者,您可以使用现有插件将WordPress服务器转换为OAuth服务器,例如WP-OAuth Server, 以及其广泛的documentation.