Tôi đang xây dựng một api đơn giản với Rails API và muốn đảm bảo rằng tôi đang đi đúng hướng ở đây. Tôi đang sử dụng devise để xử lý thông tin đăng nhập và quyết định sử dụng token_authenticatable
tùy chọn của Devise, tùy chọn này tạo khóa API mà bạn cần gửi theo mỗi yêu cầu.
Tôi đang ghép nối API với giao diện người dùng backbone / marionette và thường tự hỏi mình nên xử lý các phiên như thế nào. Suy nghĩ đầu tiên của tôi là chỉ lưu trữ khóa api trong bộ nhớ cục bộ hoặc một cookie và truy xuất nó khi tải trang, nhưng có điều gì đó về việc lưu trữ khóa api theo cách đó đã làm phiền tôi từ quan điểm bảo mật. Sẽ không dễ dàng lấy được khóa api bằng cách xem trong bộ nhớ cục bộ / cookie hoặc đánh hơi bất kỳ yêu cầu nào được gửi qua và sử dụng nó để mạo danh người dùng đó vô thời hạn? Tôi hiện đang đặt lại khóa api cho mỗi lần đăng nhập, nhưng thậm chí điều đó dường như thường xuyên - bất kỳ khi nào bạn đăng nhập trên bất kỳ thiết bị nào, điều đó có nghĩa là bạn sẽ đăng xuất trên mọi thiết bị khác, đó là một điều khá khó khăn. Nếu tôi có thể bỏ thiết lập lại này, tôi cảm thấy như nó sẽ cải thiện từ quan điểm khả năng sử dụng.
Tôi có thể hoàn toàn sai ở đây (và hy vọng tôi là vậy), bất cứ ai có thể giải thích liệu xác thực theo cách này có an toàn đáng tin cậy không và nếu không phải là một giải pháp thay thế tốt là gì? Nhìn chung, tôi đang tìm cách có thể giữ cho người dùng 'đăng nhập' một cách an toàn vào quyền truy cập API mà không phải thường xuyên buộc xác thực lại.