wp rest api授权步骤,WordPress使用JWT Authentication插件获取 Token

WordPress如何使用 rest-api 插件获取登录token?wordpress 4.7 以上,WP自带了 rest api v2 ,使用javascript与wp rest api交互,其中编辑、新增、删除等需要Oauth认证授权。

WordPress 内核并不支持基于 JWT 的身份验证,需要安装 JWT Authentication for WP REST API 插件为 WordPress REST API 增加基于 JWT 的身份验证服务端。

 

首先安装 JWT Authentication for WP-API 这个插件:

https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/

https://github.com/Tmeister/wp-api-jwt-auth

安装激活后,根据jwt插件文档在你的网站根目录 .htaccess文件进行修改

RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) – [E=HTTP_AUTHORIZATION:%1]

在文件的最后加入

SetEnvIf Authorization “(.*)” HTTP_AUTHORIZATION=$1

——————————分割线——————————

wpengine: SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

最后 修改你的 wp-config.php文件

JWT  需要一个密钥来对令牌进行签名,要确保这个密钥是唯一的,不要泄漏这个密钥。在 wp-config.php 里面增加以下内容即可。

define(‘JWT_AUTH_SECRET_KEY’, ‘your-top-secret-key’);
define(‘JWT_AUTH_CORS_ENABLE’, true);

其中的 ‘your-top-secrect-key’ 可以参考https://api.wordpress.org/secret-key/1.1/salt/中的参数值,如:

启用并配置好 JWT Authentication 插件后,访问 WP REST API 多了两个端口

通过发送账号密码到 /wp-json/jwt-auth/v1/token 获取到 token 后,把 token 保存起来,下次请求数据时,附带到请求头中去

在js中请求token,然后在编辑等操作时在header中附带上token值

服务器的成功响应:

服务器的错误响应:

JWT Authentication 插件会拦截每次 API 请求,查找授权头,如果授权头存在,JWT Authentication 会解码 Token、对 Token 进行验证,然后根据验证结果返回对应的状态码和授权信息。

如果令牌无效,将返回错误。 以下是一些错误示例:

无效凭据

无效签名

过期令牌

/wp-json/jwt-auth/v1/token/validate

这是用来验证令牌的简单 helper 端点;你只需要发出发送授权头的POST请求即可。

有效的令牌响应:

 

68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f662e636c2e6c792f6974656d732f326f306a306134303341304e31613072314333482f496d616765253230323031362d30322d32372532306174253230382e31362e3438253230504d2e706e673f76

所有的测试都可以在 https://github.com/Tmeister/wp-api-jwt-auth/tree/develop/tests/GeneralTest.php 找到。

##Credits WP REST API V2

php jwt来自 firebase

##License GPLv2

我想说两句

如果你想在评论中显示自定义头像, 请点击 gravatar! *

专业提供WordPress网站建设、主题定制、插件开发和维护优化等服务

New to site? Create an Account


Login

Lost password? ×

Already have an account? Login


Signup

×

Forgot Password

×
Scroll Up