环境:wordpress 4.7 以上,WP自带的 rest api v2
目标:使用javascript与wp rest api交互,其中编辑、新增、删除等需要Oauth认证授权
方法:
步骤一: 安装wp插件 jwt-authentication-for-wp-rest-api
步骤二: 根据jwt插件文档,修改.htaccess
一般服务器:
- RewriteEngine on
- RewriteCond %{HTTP:Authorization} ^(.*)
- RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
wpengine:
步骤三: 根据jwt插件文档,修改wp-config.php
- SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
其中的 'your-top-secrect-key' 可以参考https://api.wordpress.org/secret-key/1.1/salt/中的参数值,如:
- define('JWT_AUTH_SECRET_KEY', '=i``G+H|} fSLR f,$8~&N#paMfPzrk6,e]Dg.-<|jip(H8C%) ^uO/ l~$3},fC');
步骤四:访问https://你的域名/wp-json/jwt-auth/v1,如果能出现页面内容就说明认证插件安装配置成功
步骤五:在jwt插件安装配置成功后,就可以配置小程序前端与后端进行token验证了,首先在app.js中进行全局的应用
- App({
- onLaunch (options) {
- const jwt = wx.getStorageSync('jwt')
- if (jwt) {
- this.globalData.jwt = JSON.parse(jwt)
- }
- },
- onShow (options) {
- },
- onHide () {
- },
- onError (error) {
- },
- setJWT (token) {
- const _token = JSON.stringify(token)
- wx.setStorageSync('jwt', _token)
- this.globalData.jwt = token
- },
- removeJWT () {
- wx.removeStorageSync('jwt')
- this.globalData.jwt = {}
- },
- globalData: {
- jwt: {}
- }
- })
步骤六:添加api.js
- export const API_BASE = 'https://mlsha.cn/wp-json'
- export const API_ROUTE_POSTS = 'wp/v2/posts'
- export const API_ROUTE_MEDIA = 'wp/v2/media'
- export const API_ROUTE_JWT_TOKEN = 'jwt-auth/v1/token'
- export const API_ROUTE_USER_REGISTER = 'users/v1/register'
- export const API_ROUTE_WEIXIN_BIND = 'weixin/v1/bind'
- export const API_ROUTE_JWT_VALIDATE = 'jwt-auth/v1/token/validate'
- export const API_ROUTE_WEIXIN_LOGIN = 'weixin/v1/login'
- export const API_ROUTE_COMMENTS = 'wp/v2/comments'
最后就是创建投稿的页面,这部分大家自行发挥就可以,我对前端样式有点懵逼的,在此膜拜前端大神,哈哈哈哈!
暂无评论