2016-08-24 4 views
0

В MeanJS после пользователя LoggedIn и обновляет страницу, в core.server.controller.js будет посылать учетные данные пользователя для index.htmlВойти из другого домена с помощью MeanJS API

exports.renderIndex = function (req, res) { 
    res.render('modules/core/server/views/index', { 
    user: req.user || null 
    }); 
}; 

Ques 1: Почему сервер не знает, кто является пользователя loggedin? даже мы закрыли браузер и снова открыли его.

Ques 2

Lets't называют домен выше приложения является локальный: 8000.

У меня есть отдельный веб-сайт с только интерфейсом кода (angular) без бэкэнд. Назовем это localhost: 3000. Я могу вызвать API из localhost: 8000 и отобразить данные.

Я также могу войти в систему, позвонив по адресу localhost: 8000/api/auth/signin API, но после того, как я обновил его, он не распознает меня как подписанного пользователя, потому что у меня нет сервера, обслуживающего меня index.html, как localhost: 3000 ,

Любой трюк, чтобы сделать localhost: 8000 логин работает?

ответ

1

Относительно Вопрос 1, что происходит из-за способа express-session настроен. Если закрыть браузер куки сессии будут сохраняться, если не изменить параметры, определенные в config/env/default.js, а именно:

// Session Cookie settings 
sessionCookie: { 
    // session expiration is set by default to 24 hours 
    maxAge: 24 * (60 * 60 * 1000), 
    // httpOnly flag makes sure the cookie is only accessed 
    // through the HTTP protocol and not JS/browser 
    httpOnly: true, 
    // secure cookie should be turned to true to provide additional 
    // layer of security so that the cookie is set only when working 
    // in HTTPS mode. 
    secure: false 
}, 

По express-sessiondocs вы можете использовать expire и maxAge контролировать это поведение. Если оба maxAge и expire: unset, большинство клиентов рассмотрят это «непостоянный файл cookie» и удалит его в таком состоянии, как выход из приложения веб-браузера. В MEAN.js maxAge установлен, поэтому пользователь остается в системе, даже если браузер закрыт. Однако через 24 часа пользователю потребуется снова войти в систему.

Что касается Вопрос 2, я никогда не пробовал ничего подобного, но я думаю, что ответ может быть в свойствах express-sessiondocsdomain, path и sameSite. Посмотрите и посмотрите, что-то работает в соответствии с вашими потребностями.