Tôi đang xây dựng một API sẽ sử dụng mã thông báo truy cập để tôi có thể theo dõi việc sử dụng giữa các bộ phận khác nhau và để kiểm soát truy cập. Kế hoạch của tôi là sử dụng các động từ HTTP một cách thích hợp - GET
sẽ lấy thông tin, POST
sẽ thêm, DELETE
sẽ xóa, v.v.
Câu hỏi của tôi là, tôi nên xử lý mã thông báo truy cập như thế nào trên các cuộc gọi GET?
Tùy chọn một:
Là để cung cấp mã thông báo truy cập như một phần của chuỗi truy vấn : /api/users/?token=ACCESSTOKEN
. Vấn đề tôi gặp phải là ACCESSTOKEN xuất hiện trong nhật ký máy chủ. Phương pháp này cũng sẽ khác với các yêu cầu POST hoặc DELETE có mã thông báo được truyền qua cơ thể.
Tùy chọn hai:
Cung cấp phần thân cho yêu cầu (như bạn thực hiện trong POST
yêu cầu) và một trong các tham số là mã thông báo. Vấn đề của tôi ở đây là các nhà phát triển khác trong công ty của tôi đang nói với tôi đây không phải là "yêu cầu NHẬN đúng" vì tôi đang truyền dữ liệu. Các url họ gọi đơn giản là trông như thế này /api/users/
và họ cung cấp token=ACCESSTOKEN
trong cơ thể.
Tùy chọn ba:
Thả sử dụng GET
và buộc mọi thứ phải là a POST
. Tôi không thích ý tưởng này vì đối với nhiều cuộc gọi API này, tôi không tạo tài nguyên mới. Tôi chỉ đơn giản là trả lại dữ liệu tình cờ ngồi sau một API yêu cầu ủy quyền.
Có một lựa chọn mà tôi đang thiếu hoặc nên tinh chỉnh? Tôi thích tùy chọn 2, nhưng nhạy cảm với mối quan tâm của các nhà phát triển bộ phận khác.
Authorization
.