2016-02-15 4 views
0

Мой вопрос: Как распечатать имя пользователя, прошедшего проверку подлинности, в макете в магистрали?Получить аутентифицированный пользователь с marionettejs и nodejs in frontend

Я использую стек с: NodeJs, Express, MongoDB и BackboneJs (с помощью MarionetteJs в качестве фреймворка).

Я могу создать и войти в систему с паспортом и паровой стратегией, которая хранит пользователя в req.user.

Это отрывок из моего экспресс-файла сервера, который показывает, как я поставил аутентификацией пользователя в ПО промежуточного слоя:

// use passport session 
app.use(passport.initialize()); 
app.use(passport.session()); 

app.use(function(req, res, next) { 
    res.locals.user = req.user; 
    next(); 
}); 

Но я не знаю, как получить доступ к этой вар впереди с позвоночником. На самом деле это не совсем понятно. Не стесняйтесь задавать более необходимый код в комментариях.

+0

Ваше приложение frontend должно отправить запрос на бэкэнд, бэкэнд должен отвечать пользовательскими данными, когда интерфейс получает его, отображает его в ui. В какой части этого у вас проблема? .. –

+0

Возможно, у меня есть проблема концептуального понимания. Но запрос отправляется на мой сервер, он выполняет свою работу и выводит мою главную главную страницу. Базовый контроллер получает и отображает разные регионы. Почему я не могу получить доступ к объекту 'res', который содержит (или нет) зарегистрированного пользователя? –

+0

Вы не можете напрямую обращаться к материалам, которые у вас есть на стороне сервера с клиентской стороны ... Вы можете получить доступ только к данным, отправляемым на клиентскую сторону, с помощью объекта ответа, а не самого объекта –

ответ

0

Если вы хотите, чтобы пользователь в модели Backbone, и вы хотите, чтобы выборка соответствовала парадигме базовой линии, вы могли бы создать маршрут, который будет отправлять пользовательскую информацию на передний план.

Сервер

app.get('/user/:id', function(req, res, next) { 
    if(req.params.id === 'me') { 
    res.json(req.user); 
    } else { 
    res.status(500).send({ error: 'Invalid user id' }); 
    } 
}); 

Передняя

var UserModel = Backbone.Model.extend({ 
    urlRoot: '/user' 
}); 

var user = new UserModel({ id: 'me' }); 
user.fetch(); 

Тогда вы можете просто создать регулярную ItemView и визуализации информации о пользователе, где вы считаете нужным.

Смежные вопросы