2
A
回答
1
您可以使用下面的代码:
设置一个firstLogin
标志上创建
Accounts.onCreateUser(function(options, user) {
user.firstLogin = true;
return user;
});
方法来更新标志
Meteor.methods({
updateUserFirstLogin: function(userId) {
Meteor.users.update({
_id: userId
}, {
$set: {
'firstLogin': false
}
});
}
});
检查,如果用户在登录一个新
Accounts.validateLoginAttempt(function(attemptInfo) {
if (!attemptInfo.user) {
return false;
}
if (!attemptInfo.user.firstLogin) {
return true;
} else {
Meteor.call('updateUserFirstLogin', attemptInfo.user._id);
return false;
}
});
8
这是通过电子邮件登录一个简单的解决方案,它将解除用户创建后autologins直到电子邮件地址验证拒绝后登录:
if (Meteor.isServer) {
Accounts.validateLoginAttempt(function(attemptInfo) {
if (attemptInfo.type == 'resume') return true;
if (attemptInfo.methodName == 'createUser') return false;
if (attemptInfo.methodName == 'login' && attemptInfo.allowed) {
var verified = false;
var email = attemptInfo.methodArguments[0].user.email;
attemptInfo.user.emails.forEach(function(value, index) {
if (email == value.address && value.verified) verified = true;
});
if (!verified) throw new Meteor.Error(403, 'Verify Email first!');
}
return true;
});
}
+0
问题在于,代码不会创建用户。因为这个validateLoginAttemp()以某种方式在createUser()之前运行。当它在第二秒返回false时,流星不会注册新用户,既不发送电子邮件确认。 – 2017-10-27 16:44:05
0
我发现了一个更简单的方法:
Accounts.validateLoginAttempt((data) => {
let diff = new Date() - new Date(data.user.createdAt);
if (diff < 2000) {
console.info('New user created -- denying autologin.');
return false;
} else {
return true;
}
});
这看到用户刚刚创建,因此不会登录。
相关问题
- 1. 注册后自动创建用户
- 2. 注册后注册用户
- 3. 创建注册注册 - 新手用户
- 4. 流星:注册用户,然后自动登录
- 5. 注册页面没有注册用户
- 6. 如何在用户注册后动态创建用户页面
- 7. SEAN.js注册后自动注册和req.user.roles
- 8. 禁用流星注册
- 9. 流星autoform用户注册和登录
- 10. 注册后创建匿名用户cookie
- 11. 如何创建用户注册页面
- 12. 注册后的用户流程
- 13. 如何注册流星SpaceBars助手?
- 14. 如何在liferay注册portlet的帮助下创建用户注册
- 15. 如何在Parse.com上创建帐户?没有注册按钮?
- 16. 注册用户和未注册用户
- 17. DLL自注册:如何为当前用户注册?
- 18. 注册后自动登录
- 19. 注册后自动登录
- 20. 注册后自动登录
- 21. 注册后自动登录
- 22. 用PHP注册MySQL的用户注册
- 23. 用户注册(注册)的Wordpress REST API
- 24. Django注册自动创建UserProfile
- 25. 如何限制注册并在设计中创建自己的注册?
- 26. 当新用户注册时,自动创建DISQUS帐户
- 27. 注册表项没有被创建
- 28. 如何在注册后自动登录用户
- 29. 在cakephp中自动注册用户
- 30. 如何让注册用户使用Devise注册其他用户?
可能重复[如何防止创建用户后自动登录](http://stackoverflow.com/questions/17360037/how-to-prevent-auto-login-after-create-user) – 2014-09-03 10:57:29
是的,它是重复的。对不起,我在创建之前还没有找到它。谢谢! – skozz 2014-09-03 11:03:58