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 の次のリリースで設定可能になります)。

あなたの場合、 exports.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 に答える