将 Wordpress 授权和登录与 Android 集成
Posted
技术标签:
【中文标题】将 Wordpress 授权和登录与 Android 集成【英文标题】:Integrating Wordpress Authorization and Sign in with Android 【发布时间】:2018-01-06 20:54:35 【问题描述】:我正在尝试为 Wordpress 网站构建原生 android 应用程序。我正在使用 WP REST API v2 (https://wordpress.org/plugins/rest-api/) 来获取帖子和其他必需的属性。我需要对用户进行身份验证,为此我对 WP REST API (https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/) 使用了 JWT 身份验证 生成和验证令牌的 API 工作正常。但是,当我尝试在标头中传递生成的令牌时,我不断收到以下错误。
"code": "jwt_auth_bad_config",
"message": "JWT is not configurated properly, please contact the admin",
"data":
"status": 403
关于出了什么问题有什么建议吗?请求帮助以运行此程序。
【问题讨论】:
我添加了这个插件,一切看起来都很好。我可以得到令牌。但是 REST 请求就像以前一样无需任何授权即可工作。为什么不能限制api? 【参考方案1】:TL;DR;
将JWT_AUTH_SECRET_KEY
的定义移动到wp-config.php
文件的顶部
详细解决方案:
如插件安装文档中所述, JWT 需要一个密钥来签署令牌,这个密钥必须是唯一的并且永远不会泄露。
因此,您必须将此行添加到您的 wp-config.php 文件中
define('JWT_AUTH_SECRET_KEY', 'your-top-secrect-key');
但是,文档没有说的是,你不应该把它放在文件的末尾。 在其他定义(AUTH_KEY、SECURE_AUTH_KEY、... NONCE_SALT)之后插入这一行,403 错误应该会消失。
我猜那是因为JWT_AUTH_SECRET_KEY
的定义必须在require_once(ABSPATH . 'wp-settings.php');之前完成;
【讨论】:
我添加了这个插件,一切似乎都很好,我可以获得令牌并使用令牌请求,如果它无效,我会收到错误消息。但即使没有身份验证标头,我也可以调用所有 api,它们可以工作美好的。为什么?为什么插件不限制所有请求? 这不是评论,这是另一个问题。您应该为此创建一个新问题。以上是关于将 Wordpress 授权和登录与 Android 集成的主要内容,如果未能解决你的问题,请参考以下文章