Tôi biết điều này đã được hỏi vô số lần, nhưng không có câu trả lời nào tôi tìm thấy mô tả kết nối thực sự với chương trình phụ trợ.Cách tìm hiểu xem người dùng vẫn đăng nhập bằng xác thực dựa trên phiên không?
Tôi có một ứng dụng JS một trang giao tiếp với API phụ trợ nhỏ (Django). Tôi sử dụng xác thực dựa trên phiên. Thông tin người dùng được lưu trữ trong lần tải đầu tiên. Nếu phiên hết hạn, tôi cần thay đổi tiêu đề trang và xóa thông tin người dùng khỏi bộ nhớ cache. Tuy nhiên, hầu hết các tài nguyên API của tôi là công khai và luôn trả về 200. Một số tài nguyên khác là riêng tư và trả lại 403 nếu người dùng không đăng nhập, điều này rất tuyệt vì điều này cho phép tôi giải thích thông tin tôi cần. Vấn đề là, một số trang chỉ truy cập tài nguyên công cộng. Trong trường hợp phiên bị đột nhiên bị xóa trên chương trình phụ trợ và người dùng điều hướng đến url chỉ truy cập tài nguyên công khai, thông tin người dùng không bị xóa và tôi gặp sự cố UX.
Ý tưởng ban đầu của tôi là yêu cầu tài nguyên người dùng riêng (hãy gọi nó là /users/self/
) về mọi thay đổi url trả về 200 trong trường hợp người dùng được xác thực và 403 trong trường hợp không. Tuy nhiên, điều này yêu cầu thêm 1 yêu cầu trước mỗi yêu cầu khác cho mỗi thay đổi url, điều này không thực sự lý tưởng.
Có bất kỳ kỹ thuật nào dễ dàng hơn mà tôi có thể sử dụng trong trường hợp này không? Tôi không ngại ngay cả khi chuyển sang loại xác thực khác nếu điều đó có thể giải quyết được vấn đề.
Vấn đề là hầu hết các câu trả lời đều công khai và luôn trả về 200. Sẽ không có ý nghĩa gì nếu chúng trả lại 403/401 nếu phiên hết hạn. –
@ OndrejSlinták không trộn các tuyến đường trên máy chủ cần một phiên với các tuyến đường công khai mở. Điều đó sẽ tạo ra nhiều công việc hơn cho bạn sau này. – cgTag
Những gì bạn đang nói, là phản ứng công cộng phụ thuộc vào một số tài nguyên bị hạn chế có nghĩa là bản thân họ nên bị hạn chế hoặc truy cập vào tài nguyên bị hạn chế một cách nào đó gây ra chuyển hướng xác thực khi truy cập. – Chandermani