Tôi đang sử dụng NPM ldapjs và Meteor LDAP project này để thử bật LDAP trên trang web Kính viễn vọng kiểm tra của tôi. Vấn đề chính là tôi muốn LDAP là phương pháp đăng nhập duy nhất. Kế hoạch của tôi là có một trình bao bọc xung quanh phương thức đăng nhập Kính thiên văn (Meteor?) Được tích hợp sẵn. Nếu thông tin đăng nhập LDAP vượt qua, nó sẽ chạy tập lệnh đăng nhập Kính viễn vọng và tiếp tục như bình thường.Ghi đè trình xử lý đăng nhập mặc định của Meteor
Có lẽ đây là giải pháp hacky và giải pháp tốt hơn tồn tại? Trong mọi trường hợp, tôi cần LDAP để làm việc. Hiện tại, tôi đang cố gắng ghi đè phương thức đăng nhập mặc định bằng cách này:
Template.signin.events({
'submit': function(event, template){
Session.set('errorMessage', null);
event.preventDefault();
console.log("My login script ran!"); // I never see this message =(
return Meteor.loginWithLDAP(template.find('#login-username').value,
template.find('#login-password').value, function(error) {
return Session.set('errorMessage', 'Login failed');
});
}
});
Như nhận xét cho biết, lệnh nhật ký không bao giờ chạy (Tôi biết vì tôi đang sử dụng Chrome và bảng điều khiển sau khi cố đăng nhập trong là trống), và thêm vào đó, tôi nhận được điều này với mỗi tải trang:
Uncaught TypeError: Cannot read property 'events' of undefined
(anonymous function) @ ldap_client.js:45
(anonymous function) @ typ_accounts-ldap.js?0ad074ecfc292bededc7d318da4746392aa0f5f8:94
(anonymous function) @ typ_accounts-ldap.js?0ad074ecfc292bededc7d318da4746392aa0f5f8:101
Dòng 45 là Template.signin.events({
, vì vậy tôi đã kết luận rằng Template
không có thành viên signin
. Tôi đã thấy rằng Template.signin.events({...})
mã một vài nơi khác nhau (chỉ google "Template.signin.events" with the quotes), nhưng tôi đoán họ đã lấy nội dung đó ra bằng bản cập nhật Meteor?
Một phiên bản tôi đã cố gắng là
Template.loginButtons.events({
'submit #login-form': function(event, template){
...blah blah blah...
nhưng * thở hổn hển * điều đó không làm việc, hoặc. Nó không cung cấp cho tôi Uncaught TypeError
mà tôi nhận được với mã ban đầu, nhưng tôi đoán nó chỉ không ghi đè lên trình xử lý chính xác.
Chỉ cần rõ ràng, đây là tất cả mã chạy phía máy khách trong gói tùy chỉnh của tôi. Tệp JS của tôi là một con trực tiếp của gói tùy chỉnh mà tôi có trong Kính viễn vọng.
Làm cách nào để ghi đè trình xử lý đăng nhập mặc định trong Meteor? (Ví dụ: làm thế nào để làm cho mã của tôi chạy khi bạn nhấp vào "đăng nhập" nút thay vì mã Meteor?)
Cập nhật:
Theo yêu cầu, tôi đã thử các bước trong this short walkthrough hiển thị ví dụ về "Mở rộng tài khoản sao lưu". Tôi nhận được rất nhiều lỗi trong bảng điều khiển ở phía máy khách và một lỗi trong bảng điều khiển ở phía máy chủ. Tôi có cảm giác đang xảy ra bởi vì gợi ý là một gợi ý không phù hợp với Kính viễn vọng, nhưng có lẽ nếu tôi có một trường hợp cũ của Meteor, nó sẽ hoạt động.
Có thể [bài đăng này] (https://meteorhacks.com/extending-meteor-accounts) có thể trợ giúp? –
Trong googling e-x-t-e-n-s-i-v-e của tôi, tôi đã xem qua bài đăng đó. Tôi đã xem xét những gì họ phải nói, nhưng tôi đã không theo đuổi con đường đó bởi vì tôi nghĩ, "Tôi không nghĩ rằng nó sẽ kết hợp với chức năng của Kính viễn vọng." Nhưng có lẽ nó sẽ. Tôi đang cố gắng. –
Tôi đã cập nhật bài đăng để phản ánh cách bài đăng David đề xuất ảnh hưởng đến kết quả của tôi. –