Tôi cũng gặp vấn đề này trong một thời gian, tôi cũng có câu hỏi không có câu trả lời về chủ đề này (ở đây).
Về cơ bản, lựa chọn của bạn là OAuth hoặc tùy chỉnh. Bây giờ, đối với oauth, họ đang làm việc trên phiên bản 2.0 và bạn không nên bắt đầu một dự án mới bằng OAuth 1, nhưng vấn đề là, oauth2 sắp hoàn thành và có rất ít sự hỗ trợ cho máy chủ oauth2 cho php ngay bây giờ. Tôi không muốn nói rằng oauth2 2 chân/3 chân là phức tạp, nhưng nó là nhiều hơn nó nên và cũng sau khi đọc rất nhiều bài viết về điều này, tôi quyết định rằng bây giờ, tôi nên đi với cái gì khác , không phải oauth (cũng là một trong những người sáng tạo oauth đã rời dự án vì anh ta không hài lòng với hướng dự án này đi) vì nó ở trạng thái "chưa quyết định" (tất nhiên mọi người sẽ cho rằng nó sẵn sàng để sử dụng, nhưng tôi không quan tâm, tôi muốn một cái gì đó đã được chứng minh, không muốn là một con chuột thí nghiệm cho các công ty lớn để kiểm tra oauth [có, oauth đi cho lợi ích công ty lớn, không phải của bạn]).
Dù sao, quay trở lại vấn đề của tôi, tôi luôn thích cách Amazon làm việc với api của họ, nó rất đơn giản để thực hiện, vậy tại sao không đi theo cùng một hướng? Ý tôi là, amazon là một trong những nhà cung cấp api lớn nhất hiện có, nếu họ sử dụng nó, họ có một lý do thực sự để làm như vậy.
Nói và thực hiện, trong chưa đầy 2 giờ tôi đã có giao thức xác thực/ủy quyền của tôi và chạy, và đoán cái gì, thật dễ dàng, đơn giản và tôi thích viết nó (không bị thất vọng vì oauth). Một bài viết hay đã giúp tôi bắt đầu là: http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/ về cơ bản giải thích những gì bạn phải làm.
Vì vậy, nếu tôi là bạn, tôi sẽ bắt đầu từ đó :)
Một số dịch vụ API yêu cầu bạn gửi những thứ như một client_id trong tiêu đề của yêu cầu. Bạn là người dùng có thể sử dụng cURL để thêm tiêu đề tùy chỉnh vào các yêu cầu của họ mà bạn có thể truy cập trong tập lệnh của mình. – Xeoncross