微信小程序:基于JWT 用户身份授权认证方法步骤

环境:wordpress 4.7 以上,WP自带的 rest api v2

目标:使用javascript与wp rest api交互,其中编辑、新增、删除等需要Oauth认证授权

方法:

步骤一: 安装wp插件 jwt-authentication-for-wp-rest-api

步骤二: 根据jwt插件文档,修改.htaccess

一般服务器:

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

wpengine:

步骤三: 根据jwt插件文档,修改wp-config.php

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

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

  1. 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中进行全局的应用

  1. App({
  2.   onLaunch (options) {
  3.     const jwt = wx.getStorageSync('jwt')
  4.     if (jwt) {
  5.       this.globalData.jwt = JSON.parse(jwt)
  6.     }
  7.   },
  8.   onShow (options) {
  9.   },
  10.   onHide () {
  11.   },
  12.   onError (error) {
  13.   },
  14.   setJWT (token) {
  15.     const _token = JSON.stringify(token)
  16.     wx.setStorageSync('jwt', _token)
  17.     this.globalData.jwt = token
  18.   },
  19.   removeJWT () {
  20.     wx.removeStorageSync('jwt')
  21.     this.globalData.jwt = {}
  22.   },
  23.   globalData: {
  24.     jwt: {}
  25.   }
  26. })

步骤六:添加api.js

  1. export const API_BASE = 'https://mlsha.cn/wp-json'
  2. export const API_ROUTE_POSTS = 'wp/v2/posts'
  3. export const API_ROUTE_MEDIA = 'wp/v2/media'
  4. export const API_ROUTE_JWT_TOKEN = 'jwt-auth/v1/token'
  5. export const API_ROUTE_USER_REGISTER = 'users/v1/register'
  6. export const API_ROUTE_WEIXIN_BIND = 'weixin/v1/bind'
  7. export const API_ROUTE_JWT_VALIDATE = 'jwt-auth/v1/token/validate'
  8. export const API_ROUTE_WEIXIN_LOGIN = 'weixin/v1/login'
  9. export const API_ROUTE_COMMENTS = 'wp/v2/comments'

最后就是创建投稿的页面,这部分大家自行发挥就可以,我对前端样式有点懵逼的,在此膜拜前端大神,哈哈哈哈!

相关推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

微信扫一扫,分享到朋友圈

微信小程序:基于JWT 用户身份授权认证方法步骤
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close