Я использую экспресс/экспресс-сессию/паспорт на бэкэнде узла, и это мой код выхода.Мой веб-клиент выходит правильно, но мобильный клиент не
// GET /logout
exports.logout = (req, res) => {
req.logout();
if (req.body.type === "mobile") {
return res.status(200).json({success: true});
}
res.redirect('/');
};
Это веб-приложение работает на http://myapp.dev:3000
. Я могу войти/выйти из системы без каких-либо проблем, пока я нахожусь в веб-приложении, и нажмите кнопку выхода из системы.
У меня также есть ионный (мобильное приложение), который работает на 192.168.2.30:8100
. Когда я нажимаю кнопку выхода из системы в своем мобильном приложении, я делаю запрос/выход из системы, как обычно.
$stateProvider.state("auth.signout", {
url: "/signout",
controller: "SignoutController",
resolve: {
redirect: function($http, $state, Config) {
$http.get(`${Config.url("/logout")}`, {
type: "mobile"
}, {
withCredentials: true
}).then(res => {
$state.go('auth.signin');
}).catch(res => {
console.log(res);
alert("Could not log out");
});
}
}
});
При нажатии на кнопку выхода из системы на моем мобильном клиенте, я получаю JSON назад, но я не могу удалить куки с моего мобильного клиента, так он держит переподключения.
Любая идея, как я могу предотвратить это?
Что вы пытались удалить свой файл cookie и какие ошибки вы получаете, когда пытаетесь его удалить? – VtoCorleone
@ VtoCorleone Что я должен делать? Обязанностью бэкэнда является указание веб-браузера удалить файлы cookie, и я полагаю, что 'req.logout()' устанавливает для этого необходимые заголовки. У моего веб-приложения нет кода, кроме меня, входящего в 'myapp.dev/logout', и он работает правильно. – Aris