wp-resp-api之JWT Authentication插件使用

wp中有nonce ,是wp生成一個唯一的串,功能類似于token,用于url中或者form表單中做驗證。
如果我們單純使用rest-api的話,如果我們使用系統(tǒng)模板中的權(quán)限相關(guān)的方法,如is_user_logged_in(),current_user_can( 'edit_posts' )等這些方法時,即使當(dāng)前用戶是登當(dāng)前狀態(tài),而且請求頭里也有登錄信息的 cookie,也不會返回登錄的用戶信息,這時我們就需要使用專門的用于api的權(quán)限校驗,這里我們介紹到了
JWT Authentication方式,也就是一個token生成及驗證的插件,介紹如下。

  1. 安裝插件并啟用
    插件地址及文檔查看
https://cn.wordpress.org/plugins/jwt-authentication-for-wp-rest-api/

2.在我們的項目根目錄下面,[添加]修改.htaccess文件內(nèi)容,如果沒這個文件,直接添加此文件,再添 加內(nèi)容即可

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

3.修改wp-config.php文件,添加如下內(nèi)容

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

4.添加完我們就可以先獲取一個token ,使用賬號密碼獲取token

//獲取token接口
http://myweb.com/wp-json/jwt-auth/v1/token
method:POST
body{
      username:"admin",
    password:"123456"
}

獲取內(nèi)容如下:

{
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9teXdvcmQuY29tIiwiaWF0IjoxNjI3NjMzNTUyLCJuYmYiOjE2Mjc2MzM1NTIsImV4cCI6MTYyODIzODM1MiwiZGF0YSI6eyJ1c2VyIjp7ImlkIjoiMSJ9fX0.IFMN8goJ2qBj1GRvuRCPYJnYe14Nz8xzfvIv2USVt3Q",
    "user_email": "liuguo***@**.com",
    "user_nicename": "admin",
    "user_display_name": "admin"
}

然后我們要把這個token保存,以后使用別的resp-api時,如果需要權(quán)限,就需要把此token放在header 中。

6.header中添加注意key-value值為

header的key為: Authorization
Authorization的值為   Bearer token   //Bearer+空格+token

注意
我們重新獲取一次token,都會生成一個新的token,但是之前的token依然能用,這可以用來做多端登錄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容