微信小程序:基于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'

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

暂无评论

发表评论

相关推荐

wordpress文章部分内容加密功能的实现方法

目前wordpress文章的可见性可以设置全部公开,也可以设置密码保护。但是如果是想实现文章的一部分内容加密,需要输入密码才能全部可见的话又如何实现呢? 最简单的方法莫过于使用短代码,网上很多要求关注公众号 ...

筹码力度副图及选股公式

副图指标 DRAWGBK(CLOSE>OPEN,RGB(40,40,40),RGB(40,40,40),1,2,1); NOTEXT箱底:LLV(MA((LOW+HIGH+CLOSE+OPEN)/4,6),88),COLORGREEN,LINETHICK2; X_1:=EMA((HIGH+LOW+CLOSE)/3*(HHV(HIGH,10)-CLOSE)/(HHV(HIG ...

通达信主力控盘主图指标源码

主力控盘主图指标 {阻力支撑线} V1:=ABS((2*CLOSE+HIGH+LOW)/4-EMA(CLOSE,20))/EMA(CLOSE,20); V2:=(1-7/100)*(DMA(CLOSE,V1)); V3:=(1+7/100)*(DMA(CLOSE,V1)); V5:=EMA((LOW+HIGH+CLOSE)/3,5); 支撑:REFDATE(V ...

小米ax3600官方固件安装adguardhome

小米ax3600路由器開啟SSH權限後就可以安裝插件了,目前使用最多的莫過於于shellclash+adguardhome,第一個shellclash安裝過於簡單,就一行代碼的事情,這裡就不過多贅述。adguardhome是一款非常好用的去廣告程序 ...