2017-09-12 11 views
0

私はSisenseからユーザーをログアウトする際に問題があります。 jwtを使用してログインして、SisenseJSを使用してダッシュボードを表示できます。 そして、私はlogout(https://sisense/api/auth/logout)を呼びたいと思います。 Sisenseは同じローカルネットワーク内の別のサーバーにありますので、10.0.0.45のようなIPを持ち、ホストファイル内の "sisense"にマップしました。すべての良い。API呼び出しによるSisenseログアウト

ブラウザに行ってアドレスバーの中にhttps://sisense/api/auth/logoutを入れても動作します。また、自己署名証明書を使用しているので、「このサイトは信頼できないので続行しますか?bla bla bla」と表示されます。私はアヤックス

$.ajax({ 
       method: "GET", 
       contentType: 'application/json', 
      url: "https://sisense/api/auth/logout" 
    }); 

(実際に私は、コントローラ内のWebクライアントからそれを呼び出すことを試み、それが許容できる何かを呼び出すAJAXである必要はありません)からそのエンドポイントを呼び出すときしかし、問題が開始されます。したがって、403エラーが返されます。私が間違っていることは何ですか?いくつかのヘッダーを付ける必要がありますか?誰もそれについて何か経験がありますか?

+0

403エラーの内容をすべて添付できますか?また、 'cis:/ program files/sisense/prismweb/vnext/iisnode'の下にある' iisnode'ログで詳細を見つけることができます。最後に、 'logout'への' ajax'呼び出しを実行しているページにいるときに、開発者コンソールを開くと、Sisenseのクッキーが見えますか? ( 'prism'または' prism_shared') – motig88

+0

こんにちは、それらのクッキーはありません。私は手動でそれらを追加しようとしましたが(これはあまり良い解決策ではありません)、それでもまだうまくいきませんでした。私はちょうどajax呼び出しがそのAPIのためにサポートされていないと思う(例えば、Azureで彼らはまた、Ajax呼び出しをサポートしていない、少なくとも私が誰かがそれについて話していたところで会話を見つけた)。 – maximelian1986

答えて

0

最終的には動作しました。

だから、ajaxコールは機能しませんでしたが、リダイレクトが解決策でした。

追加コントローラ

public ActionResult SignOut() 
     { 
      return Redirect("https://sisenseAddress/api/v1/authentication/logout"); 
     } 

はまた、あなたがCORS on Sisesnse

そして、あなたはおそらく、あなたがログアウトエンドポイントとしてSisense SSO設定の内側にそのログアウトアクションURLを置くことができAzureのようないくつかのSSOを使用するなどを有効にする必要があるかもしれません

。それで、まずsisenseのログアウトを行い、次にあなたのサイトに戻り、Azureのログアウトと言うことができます。

関連する問題