5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 11359|回复: 1
打印 上一主题 下一主题

[RestAPI] 小程序使用wordpress的Rest API 、JWT 身份验证

[复制链接]

670

主题

785

帖子

8238

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8238
跳转到指定楼层
楼主
发表于 2021-5-29 17:03:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
官方文档:https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/

下面是在 WordPress 网站上使用 JWT 验证用户身份的主要流程。

申请 Token:用户使用自己在网站上注册的用户名与密码向网站申请 Token。
签发 Token:网站收到请求验证用户名与密码是否匹配,如果匹配,网站就给用户签发一个 JWT 的 Token。
使用 Token:用户收到网站签发的 Token,以后每次向网站发送请求的时候都可以带着这个 Token,网站接收请求,验证 Token 的有效性,并执行用户请求的行为。

一、在wordpress后台安装插件 JWT Authentication for WP-API

二、修改wp-config.php

your-top-secret-key是自己设置的字符串,用于签发token用的

  1. define('JWT_AUTH_SECRET_KEY', 'your-top-secret-key');
  2. define('JWT_AUTH_CORS_ENABLE', true);
复制代码

启用PHP HTTP授权头
默认情况下,大多数共享主机都禁用了HTTP授权头。
要启用此选项,您需要编辑.htaccess文件并添加以下内容

# BEGIN WordPress

  1. SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
  2. <IfModule mod_rewrite.c>
  3. RewriteEngine On
  4. RewriteBase /
  5. RewriteRule ^index\.php$ - [L]
  6. RewriteCond %{REQUEST_FILENAME} !-f
  7. RewriteCond %{REQUEST_FILENAME} !-d
  8. RewriteRule . /index.php [L]

  9. RewriteCond %{HTTP:Authorization} ^(.*)
  10. RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
  11. </IfModule>
复制代码


# END WordPress
配置完成后就可以通过POST方法发送正确的用户名和密码(json格式)签发token了。获取到token之后就可以存cookie或本地缓存里

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

比如在微信小程序里登陆获取token:

  1. wx.request({
  2.   url:'http://www.url.com/wp-json/jwt-auth/v1/token',
  3.   method:'POST',
  4.   data:{
  5.     username: name,
  6.     password: pwd
  7.   },
  8.   success(res){
  9.     var token = res.data.token;
  10.   }
  11. })
复制代码

使用API POST时都在header头带上这个token即可

例如在小程序里发布一篇文章

  1. wx.request({
  2.   url:'http://www.url.com/wp-json/wp/v2/posts',
  3.   method:'POST',
  4.   header:{'Authorization':'Bearer' + token},
  5.   data:{
  6.     "title":'发布文章的标题',
  7.     "content":"这是一篇通过REST接口发布的文章内容"
  8.   }
  9. })
复制代码

发送成功返回201
回复

使用道具 举报

670

主题

785

帖子

8238

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8238
沙发
 楼主| 发表于 2021-5-29 17:03:57 | 只看该作者
此方法是独立登录,和小程序里的微信登录不是一回事哈
但可以结合下,用来实现发贴功能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-4-29 02:31 , Processed in 0.859375 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表