0

我刚刚开始使用 SocketStream。(v0.1.0) 我用exports.actions.login 函数创建了文件/app/server/auth.coffee。我想访问此文件中的@session.setUserId,但我很难弄清楚@session 的位置以及如何在 /app/server/app.coffee 之外访问它

这是我的 auth.coffee,其中包含我想访问会话的评论。

users = [
  username: 'craig'
  password: 'craig',
  username: 'joe'
  password: 'joe',
]

authenticate = (credentials, cb) ->
  user = _.detect users, (user) ->
    user.username == credentials.username and user.password == credentials.password
  authenticated = true if user?
  callback cb, authenticated

exports.actions = 
  login: (credentials, cb) ->
    authenticate credentials, (user) ->
      # here is where i'd like to set the userId like so:
      # @session.setUserId credentials.username
      callback cb user
4

2 回答 2

2

有趣的是,您现在提出了一个关于会话的问题,因为我在过去几天中作为 SocketStream 0.2 的一部分重写了很多这样的代码。

好消息是 @session 变量将回到 0.2,因为我找到了一种将会话数据传递到后端的有效方法,而无需使用丑陋的 @getSession 回调。

为了具体回答您的问题,@session 变量只是在处理请求之前注入到 export.actions 对象中的另一个属性。因此,您不能有一个名为“会话”的操作(尽管此“魔术变量”的名称将在 0.2 的下一个版本中进行配置)。

export.authenticate = true 设置不适用于您的情况。

我很想知道您想如何/为什么要在 /app/server 代码之外使用 @session 对象。

我将在几天后将所有最新的会话代码提交到 github 上的 0.2 预览分支。

希望有帮助,

欧文

于 2011-08-18T23:12:50.117 回答
0

app/server您只能使用该@getCurrentSession方法在服务器端代码 ( ) 中获取当前会话。

您还必须添加:

exports.authenticate = true

到那个文件。

于 2011-08-18T22:14:35.283 回答