私のアプリケーションでは、データベースにユーザーをシードし、登録リンクを送信してアカウントをアクティブ化 (およびパスワードを選択) したいと考えています。また、一部のプロファイル データを確認/変更してもらいたいと考えています。
サーバーでは、次のようにデータベースをシードします。
Meteor.startup(function () {
if(Meteor.users.find().count() === 0) {
var user_id = Accounts.createUser({ email: 'some@email.com', profile: { some: 'profile' } });
Accounts.sendEnrollmentEmail(user_id);
}
})
登録リンクは期待どおりに送信されますが、メールの URL がクリックされたときのカスタム テンプレートを作成したいと考えています。アイアンルーターで処理することをお勧めします。(accounts-ui パッケージは使用しません)。
ユーザーを次のようなカスタムルートにリダイレクトするなどのことを試しました:
var doneCallback, token;
Accounts.onEnrollmentLink(function (token, done) {
doneCallback = done;
token = token;
Router.go('MemberEnroll')
});
これは機能していません(URLは変更されますが、テンプレートはレンダリングされません)
また、サーバーの登録 URL を次のように変更しようとしました。
Accounts.urls.enrollAccount = function (token) {
return Meteor.absoluteUrl('members/enroll/' + token);
};
しかし、これを行うと、Accounts.onEnrollmentLink
コールバックは発生しません。また、URL の変更については文書化されていないため、適切な方法であるかどうかはわかりません。
どんな助けでも大歓迎です。