2016-11-29 9 views
3

私は最初のsymfony(3)アプリケーションを開発しています。公開されているのRESTサービスです。 私はFOSRestBundleを使ってこれをやっています。 すぐに、または後でいくつかの管理フォームを広告しなければならないでしょう。(私自身のWebサービスを使い果たした余分な作業を経ずに)直接作成したいと思うでしょう。CSRFこの場合のトークンはです。グローバルCSRFトークンを無効公開RESTコンテキストでsymfonyのフォームのCSRFトークンを処理する

  • :私のadminフォームのための他の1を形成する:私はこの
  • は、フォームの2セット、1 wothトークンが有効化を作成したくない私は貴様のソリューションを参照してくださいREST API。 => HTSの場合には、残りのAPIはAPI_GROUPで、APIの消費者に認証を与えるための方法を見つける= htmlの
  • _formatフォールバックを持つことができない、と
    • それはようで、このグループのためにトークンを無効にします私には最善の解決策がありますが、私は管理者の認証に影響を与えることなく、REST要求で資格を与える必要はなく、透過的に行う方法はわかりません。
  • コールがRESTのAPI(すべてが、_format = HTML)

ウィッヒ本の1つ(または他に行われた場合symfonyの認証mecanismeをハックして認証を与えるために、イベントリスナーを使用します)ソリューションはあなたにとって最良のようです。どのようにコード化しますか?

答えて

0

私は最高のものではないかもしれない、方法を見つけたが、それは動作します:私にとって

$_format = $request->attributes->get('_format'); 
if ('html' == $_format) { 
    $form = $this->createForm(ItopInstanceUserType::class, $itopInstanceUser); 
} else { 
    $form = $this->createForm(ItopInstanceUserType::class, $itopInstanceUser, ['csrf_protection' => false]); 
} 
0

、OAuth認証のような科目を確認し、自分が管理しCSRFトークンを忘れます。

はこちらをご覧ください:https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/blob/master/Resources/doc/index.md

FOSOAuthServerBundleはFOSRestBundleと完璧に動作します。

+0

はい、私のAPIは主に遠隔ホストのPHP/jsプログラムからアクセスされます。 このリモートプログラムは、ajax(jsonp/cors)呼び出しを使用して自分のAPIにアクセスします。 Oauthを処理することは、この場合の解決策ではなく、さらに、このプログラムのユーザーはAPIについて知りません。構成する必要はなく、すぐに動作する必要がありますので、同じharcoded login/mdpを使用して終了します。 私の言いたいことは、コールに認証が必要ないということです。まったく。 – Bruno

関連する問題