gpt4 book ai didi

meteor - 自定义 Meteor 注册模板

转载 作者:行者123 更新时间:2023-12-04 22:11:56 25 4
gpt4 key购买 nike

在我的应用程序中,我想为数据库中的用户设置种子并向他们发送注册链接以激活他们的帐户(并选择一个密码)。我还希望他们验证/更改一些个人资料数据。

在服务器上,我像这样为数据库播种:

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 没有记录在案,所以我不确定这是一个很好的做法。

任何帮助表示赞赏。

最佳答案

在我的应用程序中,我这样做

        this.route('enroll', {
path: '/enroll-account/:token',
template: 'enroll_page',
onBeforeAction: function() {
Meteor.logout();
Session.set('_resetPasswordToken', this.params.token);
this.subscribe('enrolledUser', this.params.token).wait();
},
data: function() {
if(this.ready()){
return {
enrolledUser: Meteor.users.findOne()
}
}
}
})

由于注册网址是这样的
http://www.yoursite.com/enroll-account/hkhk32434kh42hjkhk43

当用户单击链接时,他们将重定向到此模板,您可以呈现您的模板

在我的出版物中
Meteor.publish('enrolledUser', function(token) {
return Meteor.users.find({"services.password.reset.token": token});
});

从用户那里获取密码后
Accounts.resetPassword(token, creds.password,function(e,r){
if(e){
alert("Sorry we could not reset your password. Please try again.");
}else{
alert("Logged In");
Router.go('/');
}
})

报名链接
Accounts.urls.enrollAccount = function (token) {
return Meteor.absoluteUrl('enroll-account/' + token);
};

关于meteor - 自定义 Meteor 注册模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27593410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com