Метеор Вопрос: какой лучший способ реализовать реальные сеансы? У меня есть обычная страница входа со статистикой. Нет проблем.Метеорные маршруты и сеансы -> Как координировать
Теперь я хочу, чтобы люди могли регистрироваться с определенными адресами; предположим, что они позже hit a url http://localhost:3000/checkin/area1
Как я могу координировать это с их именем?
У меня есть маршрут для фиксирования:
Router.route('/checkin/:_id', function() {
var req = this.request;
var res = this.response;
this.userId = 'steve'; //TODO: Need way to pull userId
if (!this.userId) {
res.end('Please login first');
} else {
//Verify correct area
//Verify that haven't check before
var lastCheckin = checkins.find({ user: this.userId, visited: this.params._id });
if (lastCheckin.count() == 0) {
//we haven't checkedin yet
checkins.insert({ user: this.userId, visited: this.params._id, createdAt: new Date() })
res.end('Checkin '+this.userId+' for '+this.params._id);
} else {
console.log('already checked in '+lastCheckin.createdAt);
res.end(this.userId+' already visited '+this.params._id);
}
}
}, {where: 'server'});
вещей, я попытался:
- Persistent сессия: Но это не работает, потому что запрос не приходит с главной страницы, поэтому нет никакой переменной сеанса.
- Вытащить файл cookie в запросе (поскольку постоянная сессия, похоже, 1). Первоначальный вход не имеет объекта запроса, поэтому я не знаю, где его получить.
- Другие (ситуации с различной ситуацией) показали маршрут Meteor.user() внутри маршрута, но программное обеспечение жалуется, что оно может использоваться только внутри метода. Что можно использовать внутри маршрута?
Что еще я могу попробовать?
Спасибо вам за помощь.
Куда идет Session.set? В настоящее время я уже установил их при входе в систему. Но для примера/yourPage, когда он включается в запрос? Если я смотрю на страницу, возвращенную из/checkin, там нет javascript или что-то еще, поэтому на клиентской стороне ничего не проверяется на какие-либо сеансы. Спасибо. –