Używam NPM ldapjs i tej Meteor LDAP project, aby spróbować włączyć LDAP w mojej witrynie testowej Teleskopu. Główną kwestią jest to, że chcę, by LDAP był jedyną metodą logowania. Mój plan polega na tym, żeby mieć wrapper dookoła wbudowanej metody logowania Telescope (Meteor?). Jeśli poświadczenia LDAP przepuszczą, uruchamia skrypt logowania Teleskopu i działa normalnie.Zastępowanie domyślnego handlera Meteora
Być może jest to hacky, a rozwiązanie jest lepsze? W każdym razie potrzebuję LDAP do pracy. W tej chwili staram się zastąpić domyślną metodę logowania z tym:
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');
});
}
});
Jako komentarz mówi, nigdy polecenie dziennika działa (wiem, bo używam Chrome, a konsola po próbie logowania w jest puste), a dodatkowo, mam to z każdym ładowania strony:
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
Linia 45 jest Template.signin.events({
, więc doszedłem do wniosku, że Template
nie posiada człon signin
. Widziałem, że Template.signin.events({...})
koduję kilka różnych miejsc (tylko google "Template.signin.events" with the quotes), ale myślę, że zabrali te rzeczy z aktualizacją Meteor?
Inna wersja Próbowałem to
Template.loginButtons.events({
'submit #login-form': function(event, template){
...blah blah blah...
ale * gasp * że nie działa. To NIE daje mi Uncaught TypeError
, którą otrzymuję z oryginalnym kodem, ale myślę, że po prostu nie zastąpi poprawnego programu obsługi.
Dla jasności, to jest cały kod, który działa po stronie klienta w niestandardowym pakiecie. Mój plik JS jest bezpośrednim potomkiem niestandardowego pakietu, który mam w Teleskopie.
Jak nadpisać domyślny program do logowania w Meteor? (To znaczy w jaki sposób mogę dokonać mojego kodu run Po kliknięciu „Zaloguj” przycisku zamiast kodu meteoru?)
Aktualizacja:
Na życzenie Próbowałem kroki this short walkthrough, który pokazuje przykład "Rozszerzanie kont meteorytów". Dostaję dużo błędów w konsoli po stronie klienta i jeden błąd w konsoli po stronie serwera. Mam wrażenie, że tak się dzieje, ponieważ sugestia nie pasuje dokładnie do Teleskopu, ale być może gdybym miał zwykły stary egzemplarz Meteora, zadziałałby.
Może [ten wpis] (https://meteorhacks.com/extending-meteor-accounts) może pomóc? –
W moim googlowaniu e-x-t-e-n-s-i-v-e trafiłem na ten post. Zastanawiałem się, co mają do powiedzenia, ale nie podążałem tą drogą, ponieważ pomyślałem: "Nie sądzę, że byłoby to zgodne z funkcjonalnością Teleskopu". Ale może tak. Właśnie próbuję. –
Zaktualizowałem wpis, aby odzwierciedlić to, w jaki sposób post rekomendowany przez Davida wpłynął na mój wynik. –