2015-07-08 1 views
1

Я использую ReactJS с маршрутизацией на стороне клиента и пытаюсь внедрить вход в Facebook, используя Passport. Все в порядке, но я не уверен, как передать req.user, который я генерирую для моего компонента React, поскольку я не использую Handlebars или Jade. Это возможно?Pass Express req и res данные для клиента с использованием Reactjs

UPDATE

Вот текущий код, я использую:

app.use('/', express.static(__dirname + '/public'), function(req, res){ 
    if (req.user){ 
    res.send(req.user); 
    } 
}); 

app.get('/facebook', passport.authenticate('facebook', { scope : 'email' })); 

// handle the callback after facebook has authenticated the user 
app.get('/facebook/callback', 
    passport.authenticate('facebook', { 
     successRedirect : '/' 
})); 

То, что я не знаю, как сделать, это получить доступ к req.user в моей стороне клиента Реагировать компонент (Я сохранение аутентификации и информации о пользователе через сеанс с помощью Flux), поскольку любая документация показывает загрузку через шаблон Jade или Handlebars, ни один из которых я использую. Есть идеи?

+0

Можете ли вы разместить свой код и показать нам, что вы пробовали до сих пор? –

+1

Я добавил свои экспресс-маршруты и дополнительную информацию, чтобы вы могли видеть, что я пытаюсь сделать. –

+0

Вам необходимо сделать ajax-звонок от потока до маршрута, определенного в вашем экспресс-приложении, который возвращает req.user и все остальное, что вы хотите как JSON. Ваш обратный вызов ajax анализирует json и извлекает данные в ваше приложение-ответ. – FariaC

ответ

0

Любая причина, по которой вы хотите разоблачить клиента req.user? Идея использования сеансов заключается в том, чтобы полностью удалить эти данные от клиента, поскольку клиент всегда считается небезопасным хостом. Поэтому сопоставление между пользовательскими данными и сеансом выполняется через sessionId файлов cookie, установленных на клиенте.

В прошлом мне нужен клиент, чтобы узнать его имя пользователя после входа в систему, но ничего больше. Я решил эту проблему, поместив в файл cookie клиент с этим значением. Будет ли это жизнеспособным подходом для вас? То есть, выбирая данные, которые должны быть известны клиенту (вместо передачи всего пользовательского объекта) и помещать его в куки-файл?