Как выйти с сайта Stormpath ID с помощью express-stormpath и stormpath-sdk-angularjs?
У меня есть приложение express-stormpath, которое использует Stormpath ID Site. У него есть такая конфигурация:
app.use(stormpath.init(app, {
web: {
idSite: {
enabled: true,
uri: '/idSiteResult',
nextUri: '/'
},
login: {
enabled: true,
uri: config.login
},
logout: {
enabled: true,
uri: config.logout
},
me: {
expand: {
customData: true,
groups: true
}
}
}
}));
Логин работает нормально, но выход из системы доставляет мне проблемы.
Сначала я попытался выйти из системы с помощью встроенной функции endSession() stormpath-sdk-angularjs.
$auth.endSession();
Но я все еще вошел в систему.
Копаясь в express-stormpath, похоже, что для выхода из системы POST требуется тип Accept text/html для выхода из id-сайта. В stormpath-sdk-angularjs похоже, что endSession POST использует application / json.
Поэтому я попытался выйти с помощью $http.post
$http.post('/logout', null, {
headers: {
'Accept': 'text/html'
}
});
Но я получаю эту ошибку:
XMLHttpRequest не может загрузить https://api.stormpath.com/sso/logout?jwtRequest=[...]. Перенаправление с " https://api.stormpath.com/sso/logout?jwtRequest=[...]" на " http://localhost:9000/idSiteResult?jwtResponse=[...]" было заблокировано CORS policy: в запрошенном ресурсе отсутствует заголовок "Access-Control-Allow-Origin". Источник ' http://localhost:9000/', следовательно, не имеет доступа.
Как выйти из сайта Stormpath ID?
2 ответа
Я работаю в Stormpath. Идентификационный сайт требует, чтобы вы фактически перенаправили конечного пользователя на идентификационный сайт. Я не уверен почему endSession()
не работает, но я обращусь к нашей команде JS, чтобы узнать, не может ли быть там ошибка.
В то же время вы можете использовать этот код (или эквивалент в примитивах, специфичных для Angular) для выхода из системы:
var form = document.createElement('form');
form.method = "POST";
form.action = "/logout";
form.submit();
Это похоже на проблему CORS. Я считаю, что вы должны добавить хотя бы;
Access-Control-Allow-Origin: https://api.stormpath.com
На заголовки ответа с вашего сервера.