如何设置Meteor.user()

时间:2014-09-13 19:35:50

标签: authentication meteor

我的meteor app使用github身份验证。用户通过身份验证后

Meteor.user()

返回当前经过身份验证的用户(在客户端和服务器上)。

我现在需要的是在没有身份验证的情况下运行我的应用程序。但是Meteor.user()应该返回一些用户,因为我的代码需要它。无论如何,我可以告诉我的meteor应用程序Meteor.user()应该返回什么?

2 个答案:

答案 0 :(得分:1)

Meteor.user()始终返回当前用户。如果没有用户登录,则Meteor.user()返回null。你无法改变这种行为。

然后要做的事情可能是修改您的应用程序代码,以便在没有用户登录时运行不同的代码。您可以这样做:

if(Meteor.user()){
    //do stuff when user is logged in
}
else{
    //do stuff if user is not logged in
}

答案 1 :(得分:1)

我不确定您到底想要实现的目标,但也许为匿名用户创建自定义登录句柄会有所帮助。看看here,Arunoda就扩展Meteor的帐户系统做了非常好的解释。

尽管如此,我认为最好的方法是让代码独立于Meteor.user()可能是null' ish as @ fritzi2000建议。

请注意,Meteor.user()可能会返回null,即使用户实际已登录并且Meteor.userId()设置正确。这是因为Meteor.user()或多或少等同于

Meteor.users.findOne({_id: Meteor.userId()});

因此它依赖于从服务器获取的某些特定数据。因此,使用Meteor.userId()验证登录状态总是更好。