wp rest api 授权方法步骤(使用JWT Authentication插件)

Posted 吊儿郎当

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wp rest api 授权方法步骤(使用JWT Authentication插件)相关的知识,希望对你有一定的参考价值。

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

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

方法:

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

 

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

  一般服务器(.access文件配置):

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

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

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

  其中的 ‘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‘);

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

$.ajax({
  url:"http://localhost/wp-json/jwt-auth/v1/token",
  method:"POST",
  data:{
    username:"admin",
    password:"123456"
  },
  success:function(res){
    console.log(res);
    Token = res.token;
    $.ajax({
      url:"http://localhost/wp-json/wp/v2/posts/1",
      method:"POST",
      beforeSend: function(xhr) {
        xhr.setRequestHeader("Authorization", "Bearer " + Token);
      },
      data:{
        "title":"hello api"
      },
      success:function(res){
        console.log(res);
      },
      error:function(res){
        console.log(res);
      }
    });
  },
  error:function(res){
    console.log(res);
  }
});

  

 

以上是关于wp rest api 授权方法步骤(使用JWT Authentication插件)的主要内容,如果未能解决你的问题,请参考以下文章

WP-API 的 JWT 身份验证 - 发布到 ACF 字段

将 Woocommerce REST API 与 WP-API 的 JWT 身份验证一起使用时,无法获得超过 12 个结果

wordpress rest api 授权

使用 Java Spring Rest Api 执行授权码授予流程

如何配置 Keycloak 并通过 REST API 完成所有步骤并获得 JWT?

rest_authentication_invalid_api_key_secret JWT wordpress