Tôi đang làm việc trên dự án CakePHP và hiện đang xây dựng phần xác thực người dùng của nó. Vấn đề là thông tin xác thực của tôi (ví dụ: mật khẩu) không được lưu trữ trong cơ sở dữ liệu của tôi - nguồn xác thực là LDAP nhưng câu hỏi của tôi áp dụng như nhau đối với bất kỳ nguồn không phải cơ sở dữ liệu nào.Nguồn xác thực thay thế trong CakePHP (LDAP)
Dường như Bánh chỉ xử lý mật khẩu khi chúng tồn tại trong cơ sở dữ liệu cục bộ. The Cake Cookbook suggests mà bạn có thể cho nó biết một bộ điều khiển/mô hình/đối tượng khác để cung cấp quy trình ủy quyền bằng cách sử dụng biến số $this->Auth->authorize
, tuy nhiên, xem mã (cụ thể là the Auth::startup()
function) có vẻ như bánh sẽ luôn truy vấn cơ sở dữ liệu trước tiên. tên người dùng/mật khẩu phù hợp, trước khi xem xét đối tượng thay thế bạn chỉ định với Auth->authorize
. Tức là, việc thay đổi authorize
chỉ thêm bộ lọc cấp hai, nó không thay thế tra cứu cơ sở dữ liệu.
// The process
1. User provides details
2. Cake checks the database
3. If OK, then check the custom object method
4. If OK, return true
// What I'd like:
1. User provides details.
2. Check the custom object method
3. If OK, return true
4. Profit.
Bất kỳ ý tưởng nào về cách thực hiện điều này, hy vọng không có hack các tệp lõi?
+1 cho lợi nhuận ... – Stephen