我有一个使用 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,看起来logout POST 需要 Accept type text/html for id-site logout。在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 站点?