亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用基于 cookie 的身份驗證從 REST API 獲取用戶

如何使用基于 cookie 的身份驗證從 REST API 獲取用戶

PHP
絕地無雙 2022-12-30 17:18:25
快速上下文:我正在評估為我們的 WIP 無外設 WordPress 站點的一些自定義 restful 端點進行身份驗證的可能解決方案。我想要實現的是is_user_logged_in使用基于 cookie 的身份驗證在我的自定義端點中返回 true。這是我當前的設置,這是我嘗試過的。我有以下內容functions.php// create an endpoint for getting a noncefunction get_nonce() {    return new WP_REST_Response(array('nonce' => wp_create_nonce( 'wp_rest' )));}add_action( 'rest_api_init', function () {    register_rest_route('my-site', 'nonce', array(        'methods' => 'GET',        'callback' => __NAMESPACE__ . '\get_nonce'    ));} );function get_orders() {    if ( !is_user_logged_in() ) {        return new WP_Error( 'not_authorized', 'You are not logged in', array('status' => 401) );    }    $orders = // ...    return new WP_REST_Response($orders);}add_action( 'rest_api_init', function () {    register_rest_route( 'my-site', 'orders', array(        'methods' => 'GET',        'callback' => __NAMESPACE__ . '\get_orders',    ));} );因此,總而言之,這會創建兩個端點:/wp-json/my-site/nonce生成隨機數/wp-json/my-site/orders提取一些用戶數據我所做的是:打電話GET /wp-json/my-site/nonce來搶隨機數稱呼GET /wp-json/my-site/orders?_wpnonce=thepreviousnonce我得到的是這個錯誤:{  "code": "rest_cookie_invalid_nonce",  "message": "Cookie nonce is invalid",  "data": {    "status": 403  }}我只是使用瀏覽器和 URL 來發出請求,并且我已經檢查過每個請求中是否包含 cookie。我錯過了什么?為什么我得到 403?
查看完整描述

1 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

您生成的隨機數無效。在 rest 上下文中制作 nonce 是行不通的,因為那也需要一個 nonce!它返回的是一個注銷的用戶隨機數。如果您需要基于令牌的身份驗證,我推薦JWT wp rest auth 文檔


查看完整回答
反對 回復 2022-12-30
  • 1 回答
  • 0 關注
  • 111 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號