Tôi có một ứng dụng PHP dựa nhiều vào các phiên. Chúng tôi hiện đang cân nhắc xây dựng API cho người dùng của mình. Suy nghĩ ban đầu của chúng tôi là người dùng sẽ cần phải xác thực với api bằng địa chỉ email, mật khẩu và khóa API của họ (duy nhất cho mỗi người dùng).Xác thực API PHP và các phiên
Tuy nhiên, vì ứng dụng hiện tại (bao gồm cả các mô hình) dựa trên phiên người dùng rộng rãi, tôi không chắc chắn về cách tiếp cận tốt nhất.
Giả sử rằng một yêu cầu API được xác thực một cách chính xác, nó sẽ được chấp nhận:
- Bắt đầu phiên cho cuộc gọi API khi người dùng được xác thực
- Chạy các mô hình và trở về json/xml cho người sử dụng
- Giết phiên
Điều này có nghĩa rằng phiên được khởi tạo cho mỗi cuộc gọi API, và sau đó ngay lập tức đỏ mặt. Điều này có ổn không? Hay chúng ta nên xem xét các lựa chọn thay thế khác?
Bạn chính xác, API phải là trạng thái không trạng thái và không sử dụng phiên/cookie nếu có thể. Nhưng điều đó có thể được thực hiện dễ dàng, không sao cả. Tuy nhiên, bạn nên sử dụng lại khung xác thực hiện tại vì nó thực sự phức tạp. Ví dụ: hãy xem https://github.com/delight-im/PHP-Auth, cả hai đều không có khung công tác bất khả tri và không có cơ sở dữ liệu. Sau đó gửi thông tin đăng nhập với mọi yêu cầu và trên máy chủ (1) đăng nhập, (2) thực hiện công việc thực tế và cuối cùng (3) đăng xuất lại. – caw