私はテスト望遠鏡のウェブサイトでLDAPを有効にしようとするために、 NPM ldapjs とこの Meteor LDAPプロジェクトを使用しています。主な問題は、LDAPをログインの唯一の方法にしたいということです。私の計画は、built-in telescope(Meteor?LDAP)ログインメソッドの周りにラッパーを持つことです。資格情
おそらくこれはハッキーなソリューションであり、より良いものが存在しますか?いずれにせよ、私はLDAPを動作させる必要があります。今、私はこれでデフォルトのログインメソッドを上書きしようとしています:
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');
});
}
});
コメントによると、logコマンドは実行されません(Chromeを使用しているため、ログインしようとした後のコンソールが空白になっているためわかります)。さらに、すべてのページロードでこれを取得します。
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
45行目はTemplate.signin.events({
なので、Template
にsignin
メンバーがないと結論づけました。私はTemplate.signin.events({...})
コードがいくつかの異なる場所( Google "Template.signin.events"と引用符)を見てきましたが、Meteorアップデートでそのものを取り出したと思いますか?
私が試した別のバージョンは
Template.loginButtons.events({
'submit #login-form': function(event, template){
...blah blah blah...
しかし、* gasp *も動作しません。元のコードで取得したUncaught TypeError
は表示されませんが、正しいハンドラを上書きできないと思います。
ちょうど明確にするために、これは私のカスタムパッケージ内でclient-sideを実行するすべてのコードです。私のJSファイルは、私が望遠鏡で持っているカスタムパッケージの直接の子です。
Meteorのデフォルトのログインハンドラを上書きするにはどうすればよいですか? (つまり、Meteorのコードの代わりに「ログイン」ボタンをクリックすると、コードを実行するにはどうすればよいですか?)
更新:
要求に応じて、 "Extending Meteor Accounts"の例を示すのこの短いウォークスルーのステップを試しました。クライアント側のコンソールに多くのエラーが表示され、サーバー側のコンソールに1つのエラーが表示されます。提案は、特に望遠鏡でうまくいかないものであるため、それが起こっていると感じていますが、おそらく私がMeteorの普通の古いインスタンスを持っ