2013-06-27 27 views
24

tôi đang làm việc trên tích hợp OAuth2 đến một API REST của và tôi muốn biết làm thế nào tôi phải gửi tham số access_token cho các yêu cầu.OAuth2.0 làm thế nào để vượt qua access token

Ví dụ:
Máy chủ của tôi chấp nhận hai tuyến đường:
POST/viết
GET/đọc

Đối/ghi, tôi phải đặt access_token trong POST?
curl http://api.localhost/write -d 'access_token=[ACCESS_TOKEN]'

Cho/đọc, tôi có nên đặt nó trong GET?
curl http://api.localhost/read?access_token=[ACCESS_TOKEN]

Hoặc trong cả hai trường hợp, nó phải được gửi qua POST?

Cảm ơn,
Gasim

+2

Lưu ý rằng cả hai '/ write' và'/read' đều làm ** NOT ** tuân theo các tiêu chuẩn RESTful API. Tên tài nguyên phải là bộ sưu tập chứ không phải là động từ. HTTP đã có tập hợp động từ riêng của mình. Ví dụ: nếu API của bạn đọc/ghi tệp thì điểm cuối phải là yêu cầu '/ files' và' GET' sẽ đọc tệp, trong khi 'PUT' hoặc' POST' sẽ tạo tệp. ('PUT' nếu máy khách của bạn chỉ định ID,' POST' nếu máy chủ làm) – OverCoder

Trả lời

33

Với OAuth, token thường thông qua trong tiêu đề yêu cầu. Bạn có thể muốn thử một cái gì đó tương tự như sau, cho cả POST hoặc GET:

POST: curl http://api.localhost/write -H 'Authorization: Bearer ACCESS_TOKEN'

GET: curl http://api.localhost/read -H 'Authorization: Bearer ACCESS_TOKEN'

Phần giá trị của cặp khóa Authorization/giá trị có thể khác nhau tùy theo dịch vụ REST các nhà cung cấp. Với Github, ví dụ, các cặp khóa tiêu đề/giá trị trông như thế này:

curl -H "Authorization: token your_token" https://api.github.com/repos/user/repo

Bạn có thể cần phải tham khảo ý kiến ​​các tài liệu cung cấp webservice để biết chi tiết.

+0

@ user984832 là từ 'Bearer' là từ khóa hoặc nó là một phần của mã thông báo truy cập –

+0

' Bearer' là từ khóa được sử dụng thường xuyên các trang web triển khai OAuth 2. –

+0

Làm thế nào u chuyển từ api.localhost/đọc sang https://api.github.com/repos/user/repo ?? – Jesse

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