Tôi đã lập trình với cả Sinatra và Padrino trong một thời gian dài. Tuy nhiên, tôi vẫn không thể tìm thấy giải pháp xác thực và ủy quyền phù hợp cho Padrino. Hãy để tôi giải thích kỳ vọng của tôi và những gì tôi đã thử.Giải pháp xác thực và ủy quyền cho Padrino
Với Sinatra, tôi sử dụng thành công đá quý sinatra-authentication cùng với đá quý role_model. Tôi thường sử dụng Mongoid ORM để nói chuyện với MongoDB. Hai viên đá quý này cùng nhau cho phép tôi chăm sóc authetication, bảo vệ các tuyến đường, kiểm tra vai trò của người dùng đăng nhập để áp dụng kiểm soát truy cập.
xác thực sinatra không hoạt động với Padrino - điều này rất cụ thể đối với Sinatra. Tôi đã thử nó nhiều lần. Tôi đã thử cả omniauth và warden với các mô-đun Padrino tương ứng nhưng vì một lý do nào đó, tôi không thể làm cho chúng hoạt động đơn giản như đá quý sinatra-autentication tuyệt vời. Vì vậy - trước khi tôi có thể thử thực hiện một giải pháp của riêng mình (hoặc chuyển xác thực sinatra cho Padrino) - bất kỳ ai cũng có thể đề xuất bất kỳ giải pháp xác thực và ủy quyền nào khác không? Tại thời điểm này tôi không cần bất kỳ thứ gì lạ mắt - xác thực dựa trên cơ sở dữ liệu đơn giản sẽ hoạt động hoàn hảo.
Sử dụng padrino-admin buộc bạn làm việc với mô hình tài khoản được tạo ra bởi admin (hoặc workaround nó); có thể không tối ưu cho OP. Quan trọng hơn, có những vấn đề an ninh mở (https://github.com/padrino/padrino-framework/issues/384) bất cứ ai triển khai padrino-admin trong sản xuất nên lưu ý. – pithyless
Vấn đề bảo mật đó đã bị đóng 2 năm trước, người xem tương lai fyi – Jonah