我正在尝试添加一个简单的处理程序来处理登录时的用户。 我认为这很简单,但是......由于某种原因,我无法在Accounts.onLogin回调中找到用户。
Meteor.startup ->
if Meteor.isServer
Accounts.onLogin ->
console.log("login | onLogin")
user = Meteor.user()
console.log("login | onLogin user:", user)
但这永远不会到达第二个console.log。
如果我发表评论user = Meteor.user()
,那么它就不会崩溃。
是否可以通过这种方式从服务器端流星获取currentUser?
https://docs.meteor.com/#/full/accounts_onlogin
对于客户端我可以用跟踪器收听, 但我更愿意在回调事件和服务器端使用它。 https://stackoverflow.com/a/16353336/1146785
奇怪的是错误总是引用Meteor.userId(),即使我没有调用它。
I20150109-05:49:02.924(-8)? Exception in onLogin callback: Error: Meteor.userId can only be invoked in method calls. Use this.userId in publish functions.
I20150109-05:49:02.925(-8)? at Object.Meteor.userId (packages/accounts-base/accounts_server.js:19:1)
I20150109-05:49:02.926(-8)? at Object.Meteor.user (packages/accounts-base/accounts_server.js:24:1)
I20150109-05:49:02.927(-8)? at packages/dcsan:mpg/both/startup/AccountsValidation.coffee:43:21
I20150109-05:49:02.928(-8)? at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
I20150109-05:49:02.929(-8)? at packages/meteor/dynamics_nodejs.js:121:1
I20150109-05:49:02.930(-8)? at packages/accounts-base/accounts_server.js:112:1
I20150109-05:49:02.931(-8)? at [object Object]._.extend.each (packages/callback-hook/hook.js:102:1)
I20150109-05:49:02.932(-8)? at successfulLogin (packages/accounts-base/accounts_server.js:111:1)
I20150109-05:49:02.933(-8)? at attemptLogin (packages/accounts-base/accounts_server.js:283:1)
I20150109-05:49:02.934(-8)? at [object Object].Meteor.methods.login (packages/accounts-base/accounts_server.js:436:1)
答案 0 :(得分:0)
你在这里遗漏了一些东西 -
Accounts.onLogin
具有参数用户对象userObject
,用户详细信息可以通过userObject.user
访问,请使用以下内容 -
Accounts.onLogin (userObject)->
# userObject.user object can get you currently successful logged in user
console.log("login | onLogin")
console.log("login | onLogin user:", userObject.user)