SocketStream: доступ к @session вне /server/app.coffee
Я только начинаю с SocketStream. (v0.1.0) Я создал файл /app/server/auth.coffee с функцией exports.actions.login. Я хотел бы получить доступ к @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
2 ответа
Интересно, что вы задали вопрос о сессиях в данный момент, так как за последние несколько дней я переписывал большую часть этого кода в рамках SocketStream 0.2.
Хорошей новостью является то, что переменная @session вернется в 0.2, поскольку я нашел эффективный способ передачи данных сеанса на серверную часть без использования обратного обратного вызова @getSession.
Чтобы конкретно ответить на ваш вопрос, переменная @session - это просто другое свойство, которое вводится в объект export.actions перед обработкой запроса. Следовательно, у вас не может быть действия, называемого "сессия" (хотя имя этой "магической переменной" будет настраиваться в следующей версии 0.2).
Параметр exports.authenticate = true не применяется в вашем случае.
Мне интересно узнать, как / почему вы хотите использовать объект @session вне вашего кода / app / server.
Я добавлю весь последний код сеанса в ветку предварительного просмотра 0.2 на github через несколько дней.
Надеюсь, это поможет,
Оуэн
Вы получаете текущий сеанс только внутри вашего серверного кода (app/server
) с использованием @getCurrentSession
метод.
Также вы должны добавить:
exports.authenticate = true
в этот файл.