1

私は Symfony2 (バージョン 2.3) を使用しており、JS クライアント (任意の Web ページに挿入できるブックマークレット) で動作するサーバー側で REST API を作成しようとしています。

今のところ、私は実装しました:

  • ログイン アクション。_user/_password の値を login_check アクションに直接送信しました。この設定 'success_handler' と 'failure_handler' を調整して、ログインが成功したかどうかを示すカスタム応答メッセージを作成できるようにしました (特に、ログイン ページにリダイレクトする代わりに 404 メッセージを送信するログイン失敗の場合)。アイデアは、ログイン フォーム ページを必要とせずにセッションを開始することでした。

  • GET、POST、および PUT メソッドを使用した一連のアクション。

Chrome 用の Postman REST Client プラグインを使用していますが、テストではすべて正常に動作しているようです。

クライアント アプリケーションから POST アクションを呼び出すと、AJAX を介して問題がログに記録され、POST アクションがキャンセルされます。Symfony のログを見ると、次のメッセージが表示されます。

[2013-07-15 08:17:01] security.INFO: Authentication exception occurred; redirecting to authentication entry point (A Token was not found in the SecurityContext.) [] []

まったくログインしていないようで、ログイン フォーム ページにリダイレクトされます。Chrome では、POST アクションがキャンセルされていることがわかります。FF で 302 HTTP コード (リダイレクト) を取得します。

反対側では、Chrome 用の Postman REST クライアント プラグインを使用して API をテストしましたが、正常に動作しているようです。Postman を使用しているときにわかる唯一の違いは、Cookie がサーバーに送信されることですが、クライアントの JS コードをリモート ページに挿入すると、Cookie が送信されないように見えます。

注: 私の API は、AJAX 要求に対して同じドメイン ポリシーを考慮します (サーバー側で Access-Control-Allow-Origin および Access-Control-Allow-Methods を使用)。

任意のアイデア、前もって感謝します。

4

0 に答える 0