2つのサービスの基本フレームワークとしてSilexを使用したいと思います。私は一般的にクッキー/セッションを避けようとしており、ヘッダーを使って 'やる'ことをしようとしているので、さまざまなクライアントやapi(モバイル、ウェブなど)で使用されます。Microserviceアーキテクチャを使用したSilexアプリケーションのトークン/ステートレス認証
私が達成しようとしているかのセットアップ/流れ:authservice.domain.comにWebページ生成の要求に自分の携帯アプリ/中
ユーザーログインは、あるレスポンスとして新しいトークンを取り戻します同様トークンストアに登録
ウェブやモバイルアプリからのユーザーのアクセスがproducts.domain.comトークンはヘッダから読み取られ、店舗にチェックされている
すべてが美しく見えますが、何とかSilexがログインステップの後にリクエストにヘッダーを追加することはできません。レスポンスに追加することはできますがリクエストすることはできません(ミドルウェアの前後で使いました。 $ app-> after/before)... btw。私はそれを理解しているかどうかはわかりませんが、ヘッダーをこのように設定するときにユーザーが更新ページボタンを押すと、カスタムヘッダーが失われることはありませんか?結局のところ、Cookie /セッションなしでヘッダーにトークンを保持し続けることは可能ですか?
ここで私は(と私はクロームでそれを見ることができます)トークン取得した後、それが応答にセットを取得する実行しているんだけど、それはリクエストに応じて設定され得ることはありませんサンプルコードだ - 私は、ミドルウェア
前に使用しても同様に試してみましたが、$this->after(function(Request $request, Response $response) {
$response->headers->set("X-token","2");
$request->headers->set("X-token","2");
});
私はこれをどのように達成することができますか?だから...クッキーや(apiゲートウェイ)セッションでトークンを保持せずにプレーン(Silex:))PHPで複数のサービスに渡ってヘッダーを使用するステートレス認証?
リクエストは、サーバーではなくクライアントによって送信され、ユーザーはそれを読み取るため、サーバーにデータを追加することはできません。あなたが積極的に何かを要求しても、ブラウザからのものであれば、データを追加することはできません – DanFromGermany
Symfonyセキュリティマニュアルをチェックしましたか? [stateless APIキー認証](http://symfony.com/doc/2.8/cookbook/security/guard-authentication.html)の達成方法に関するチュートリアルがあります。また、あなたがやろうとしているものである[JWTのセキュリティプロバイダ](https://github.com/cnam/security-jwt-service-provider)もあります。 – mTorres