OneLogin のドキュメントによると、API 呼び出しを介してユーザーをログインさせるための最終的な手順は次のとおりです。
- session_token を生成し、フォーム POST 経由で OneLogin URL に送信します
- 次に、OneLogin サーバーがセッションを開始し、httpOnly のドメイン固有の Cookie をブラウザーに返します。
- フォーム POST が 302 リダイレクト ステータスを返したことを認識し、ユーザーを別のページに誘導する
私の質問は、#3をどのように処理することになっていますか?特に、返される Cookie に関して。
ドキュメントには次のように記載されています。
実際のアプリでは、リダイレクトを確認して適切に動作させるためのロジックを含める必要があります。アプリは POST を要求することで開始しますが、正常な応答を受信すると、ユーザーが現在ログインしていることを認識し、ユーザーにログイン状態を表示するなどして適切に応答できる必要があります。
フォーム投稿からのリダイレクトを確認するにはどうすればよいですか?
サーブレットを作成すると、ブラウザがサーブレットを呼び出し、バックエンドでフォーム ポストをエミュレートすることで、これを行うことができます。しかし、返された Cookie は私のサーブレット呼び出しでのみ受け入れられるようになりました。ブラウザーに戻そうとすると、ドメイン フィールドが最初の要求と一致しないため、拒否されます。少なくとも私はそれが起こっていると思っています... 私はここで少し曖昧です。
Cookie の「httpOnly」の側面が原因で、AJAX 呼び出しを介してフォームの投稿を実行できません。その属性により、ほとんどのブラウザで禁止されています。
では、この部分はどのように機能することを意図していたのでしょうか? もっと簡単な方法はありますか?誰かがこれにどのように対処したのですか? 私の最終的な目標は、認証されたユーザーを自分のポータル ページに送信することですが、フォームの応答を正しく認識し、ブラウザーの Cookie を適切に設定することができません。
どんな洞察も高く評価されます。役立つ場合は、FireFox 49 と Tomcat 7 を使用しています。