我正在开发一个iPhone应用程序,该应用程序利用Wordpress网站作为后端。我还对该站点进行了更改,并使用Wordpress wp-json restful api创建了用于服务应用程序的基本端点。我已经安装了JSON API,JSON API Auth和JSON API User插件,并支持用户身份验证。我设法登录一个用户并在此过程中获得一个会话令牌,即cookie。如何使后续调用通过身份验证,即如何将cookie作为必需参数添加到现有端点?
例如,我有这段代码可检索一周的最新菜单:
function get_latest_menu ( $params ){
$post = get_posts( array(
'category' => 69,
'posts_per_page' => 1,
'offset' => 0
) );
if( empty( $post ) ){
return null;
}
return $post[0]->post_content;
}
// Register the rest route here.
add_action( 'rest_api_init', function () {
register_rest_route( 'weeks-menu/v1', 'latest-menu',array(
'methods' => 'GET',
'callback' => 'get_latest_menu'
) );
} );
我应该在哪里以及如何在调用中添加cookie参数,以使其经过身份验证?请提供具体的代码。
这似乎很基本,但是我没有真正的php / Wordpress知识 也没有时间去获取它。谢谢。
答案 0 :(得分:0)
不确定这将为您带来多少帮助,但是最近在学校,我在使用Ionic开发移动应用程序时遇到了类似的问题。我要做的事情是:
在HTAccess文件中为wordpress启用身份验证标头(如果不这样做,通常会失败,JWT的文档会确切说明要添加的内容,并且对我有用)。
我用邮递员对其进行了测试,但是您要做的第一件事是获取用户名/密码的令牌。
每个后续调用都以Authorization: Bearer <token>
格式在标头中添加一个授权标志,其中是您为用户拥有的令牌。我有一个与Ionic一起使用的软件包,可以强制从我的存储中删除令牌,每次发出呼叫时都会起作用。
此外,您可以添加新的检查以验证令牌是否有效,但是有一些插件可以强制对任何其余端点进行身份验证,最终会发送未经授权的标志,您可以在代码中进行检查。
如果您仍然不清楚下载并使用邮递员,并用它来验证所有设置是否正确,我的建议是。排序后,其他所有内容都会变得更有意义。