我有一个使用Stormpath ID网站的express-stormpath应用程序。它具有以下配置:
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
}
}
}
}));
登录工作正常,但注销给我带来麻烦。
首先,我尝试使用stormpath-sdk-angularjs内置endSession()登出
$auth.endSession();
但是我仍然登录。
进入express-stormpath,看起来登出POST需要ID类型站点登出接受类型text / html。在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阻止策略:所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问源“ http:// localhost:9000 ”。
如何注销Stormpath ID网站?
我在Stormpath工作。ID站点要求您实际将最终用户重定向到ID站点。我不确定为什么endSession()
不起作用,但是我会联系我们的JS团队,看看那里是否可能有错误。
同时,您可以使用以下代码(或Angular特定基元中的等效代码)完成注销:
var form = document.createElement('form');
form.method = "POST";
form.action = "/logout";
form.submit();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句