2016-12-19 3 views
2

私はStormpath ID Siteを使用するexpress-stormpathアプリケーションを持っています。それはこの構成を持っています:express-stormpathとstormpath-sdk-angularjsを使用してStormpath IDサイトからログアウトするにはどうすればよいですか?

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 
     } 
    } 
    } 
})); 

ログインはうまくいっていますが、ログアウトすると問題が起こります。

まず、私は

$auth.endSession(); 

)内蔵のENDSESSION stormpath-SDK-angularjs(とログアウトしてみました。しかし、私はまだログインしていた。

を明示-stormpathに掘り、それは次のようになりますlogout POST requires Accept type text/html for id-site logout。 stormpath-sdk-angularjsでは、それはendSession POST uses application/jsonのように見えます。

は、だから私は$ http.post

$http.post('/logout', null, { 
    headers: { 
    'Accept': 'text/html' 
    } 
}); 

でログアウトしようとしたしかし、私はこのエラーを取得する:

XMLHttpRequest cannot load https://api.stormpath.com/sso/logout?jwtRequest=[...] . Redirect from ' https://api.stormpath.com/sso/logout?jwtRequest=[...] ' to ' http://localhost:9000/idSiteResult?jwtResponse=[...] ' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:9000 ' is therefore not allowed access.

にはどうすればStormpath IDサイトからログアウトしますか?

答えて

1

私はStormpathで働いています。 IDサイトでは、実際にエンドユーザーをIDサイトにリダイレクトする必要があります。なぜendSession()が動作しないのか分かりませんが、JSチームにバグが存在するかどうかを調べるために私は手を差し伸べます。一方

、あなたはログアウトを達成するために(角度固有のプリミティブまたは同等の)このコードを使用することができます:

var form = document.createElement('form'); 
form.method = "POST"; 
form.action = "/logout"; 
form.submit(); 
+0

あなたは特急サーバー上csurfを使用している場合、また、送信してくださいフォームのXSRF-TOKEN(および_csrfクッキーではない) – ryan

0

これはCORSの問題のようです。私はあなたが少なくとも追加する必要があると信じています。

Access-Control-Allow-Origin: https://api.stormpath.com 

サーバーからの応答ヘッダー。

関連する問題