meteor – 检查用户是否以pipe理员身份login(客户端)

我目前正在开发一个需要用户和pipe理员的应用程序。 我现在所做的是,我在客户端上创build一个pipe理员帐户,用户名“admin”和一个默认密码,应该通过accounts-ui进行更改。

我这样做是因为创build一个像这样的用户:

Accounts.createUser({ username : 'admin', email : 'test@test.com', password : 'changethispasswordovertheuserinterface', profile : { type : 'admin' } }); 

在服务器端对我不起作用。 这意味着我只是在我的client.js创buildpipe理员,只是使用此代码来检查pipe理员是否login。

 Template.admin.isAdmin = function () { var currentUser = Meteor.user(); // Is this hackable? if (null !== currentUser) { if ('admin' === currentUser.username) { return true; } } }; 

这是处理这个问题的最好方法吗? 而最重要的是,我的网站可以像这样(可以有人伪造)?

是的,这是可以破解的,可以拉起铬检查员,并很容易地修改。 或者甚至更快,通过input一些像Template.admin.isAdmin = function () { return true; } Template.admin.isAdmin = function () { return true; }到Chrome的Web控制台

如果用户是pipe理员,最好的方法是仅从服务器端向客户端提供信息。 所以这意味着使用Meteor.allow来确保数据库只能由pipe理员用户更改,如果从客户端执行操作。

这也取决于你想要使用'isAdmin'。 如果它的内容,你可以生成服务器端的HTML,并在Meteor.methods发送到客户端。 目前模板系统不提供locking客户端上的用户界面,取决于用户的文档内容。

对于任何pipe理命令,您都可以使用Meteor.call在这一点上用户在服务器上进行审查,并且在那里执行事务。

在这个线程上的答案也是如此,顶级答案有一个服务器端,meteor方法调用的代码。