2015-12-17 40 views
5

Tôi muốn sử dụng WP REST API auth với plugin này: https://github.com/Tmeister/wp-api-jwt-authWP còn lại api JWT auth

tôi nhận được mã thông báo với req này trên POST: http://localhost/wp_rest/wp-json/jwt-auth/v1/token

Nhưng tôi không thể làm theo yêu cầu cho bài mehod: localhost/wp_rest/wp-json/wp/v2/bài

tôi nhận được lỗi :

{ 
    "code": "rest_forbidden" 
    "message": "You don't have permission to do this." 
    "data": { 
     "status": 403 
    } 
} 

Trong phần đầu của tôi, tôi có điều này:

Authorization: Bearer 
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3RcL3dwX3Jlc3QiLCJpYXQiOjE0NTAzNDEwMTgsIm5iZiI6MTQ1MDM0MTAxOCwiZXhwIjoxNDUwOTQ1ODE4LCJkYXRhIjp7InVzZXIiOnsiaWQiOiIxIn19fQ.rGNPsU4EocClWLYWaSDs1hDJMODszg-eKfqnKSEsiw0 

Tôi đang cố gắng với localhost/wp_rest/wp-json/JWT-auth/v1/thẻ/validate nhưng tôi nhận được lỗi này:

{ 
    "code": "jwt_auth_no_auth_header", 
    "message": "Authorization header not found.", 
    "data": { 
     "status": 403 
    } 
} 

Bất kỳ ý tưởng nào?

Trả lời

4

Dường như bạn không bao gồm tiêu đề Cấp quyền trong yêu cầu của bạn. Bạn cần thêm 'Authorization': 'Bearer PLACE_TOKEN_HERE' vào tiêu đề yêu cầu của mình.

Là một mẫu:

var req = { 
    method: 'POST', 
    url: window.location.href + 'wp-json/wp/v2/posts', 
    headers: { 
     'Authorization': 'Bearer ' + TOKEN_GOES_HERE 
    } 
    data: DATA TO PASS GOES HERE 
} 
$http(req); 
+0

này giải quyết vấn đề của tôi, nhưng thử nghiệm thông qua một bộ công cụ. –

4

Nếu câu trả lời cung cấp bởi Leo Gono và Tunaki vẫn không giải quyết được vấn đề của bạn, hãy chắc chắn bạn đã thêm following code để .htaccess của bạn:.

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

Đảm bảo đặt các dòng đó trước dòng cuối cùng bằng "[L]" trong tệp .htaccess của bạn nếu không dòng này sẽ không được xử lý.

Có thể tiêu đề Cấp phép bị máy chủ của cài đặt khung hủy bỏ. (Tôi đã phải thay đổi htaccess cho Laravel)

+0

Không cần bật Tiêu đề cấp phép HTTP trong máy chủ nginx và máy chủ cửa sổ. Theo mặc định, nó hoạt động, không làm gì cả. –

+0

Ồ, đó là điều tốt để biết. Tôi đã phải thay đổi điều này cho Apache. –

+2

Hãy chắc chắn để đặt những dòng trước dòng cuối cùng với một "[L]" trong .htaccess của bạn hoặc người nào khác nó sẽ không được xử lý. –

0

Tôi gặp phải sự cố tương tự trong khi thiết lập cùng một plugin để tôi tạo video chi tiết quy trình tôi theo dõi để nhanh chóng khởi chạy môi trường thử nghiệm, cài đặt plugin, thực hiện thiết lập cần thiết để plugin hoạt động và sau đó xác thực chức năng của plugin.

Đây là địa chỉ: https://youtu.be/Mp7T7x1oxDk

0

Tôi đã gặp sự cố tương tự. Giải pháp của tôi rất đơn giản.

Sử dụng công cụ (trong trường hợp bưu tá của tôi (https://www.getpostman.com)), tôi đã chọn thêm tiêu đề Xác thực (buộc tiêu đề) theo cách thủ công. Bạn có thể muốn đặt nó theo cách thủ công khi sử dụng mã, trong phần Tiêu đề HTTP (không phải là một tham số, chỉ trong trường hợp :)).

Checked enable Authentication header

Kind regards, Reinhard

Các vấn đề liên quan