我的meteor app使用github身份验证。用户通过身份验证后
Meteor.user()
返回当前经过身份验证的用户(在客户端和服务器上)。
我现在需要的是在没有身份验证的情况下运行我的应用程序。但是Meteor.user()应该返回一些用户,因为我的代码需要它。无论如何,我可以告诉我的meteor应用程序Meteor.user()应该返回什么?
答案 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()
验证登录状态总是更好。