質問

私はこの記事を読んだ後、

この質問は私の心を交差さ: 「共通RESTの間違い:セッションは無関係です「

セッションは、実際にRESTfulなアプリケーションに落胆している場合。どのようなアプリケーションでのライセンスを扱うでしょう。私は、特に同時ライセンスモデルを参照し、ライセンスを名付けていませんよ。すなわち、顧客は、Xユーザまで可能にすることができるアプリケーションが同時にログインすることを意味Xのライセンスを購入します。どのアプリケーションがユーザーに現在のログに記録されたの状態を保持しなければならないことを意味します。

私はクッキーを設定したり、ユニークなIDを生成し、クライアントはすべての要求にそれを送信する必要がありますでしょうライセンスと呼ばれるリソースを、作成することができます知っています。しかし、それは右、セッションの作成と同じですか?

私はステートレスなアプローチを採用し、リクエストごとに認証トークンを作成するために、クライアントを頼むよ場合は、

はどのようにアプリケーションが消費し、そのクライアントのライセンスを解放する際に知っているのだろうか?

の代替はありますか?特に多くのRESTfulな代替?

役に立ちましたか?

解決

私が正しくあなたの質問を解釈すると仮定すると、私はあなたのためにドットを接続してみましょう。 あなたが投稿したリンクが有効な答えを持って、各要求は、HTTP認証を使用する必要があります。あなたのユーザーのための一定の状態を維持するために、ライセンスの概念が必要な場合は、最も可能性の高いユーザーへリンクすることができます。次の方法で行くには(検証済み)のユーザ名を持っています。あなただけの要求ごとにそのコントローラを起動し、その状態を保存する必要があります。そこには、あなたのセッションを持っています。

クッキー入力は任意の重要な情報のために、信頼すべきではありませんが、セキュリティトークンなどの追加の検証のために非常に役立ちます。私はあなたのオンサイトリンクにランダムセキュリティトークンのフィールドを追加することに安らかなアプローチだと思います。それはもちろん、「セッション」で期限切れにする必要があります。

他のヒント

あなたは、インフラストラクチャ・スタック1レベル下のライセンス取り扱いの懸念を押して検討する必要があります。ソートのアスペクト指向プログラミング(AOP)のアプローチのようなあなたがなります。代わりに、アプリケーション層でそれを扱うのは、おそらく、あなたは、Webサーバー層にそれをプッシュすることができます。

インフラストラクチャの詳細を知らなくても、特定の勧告を与えることは困難です。一例として、* nixのプラットフォームを使用して、ロジックを扱うライセンスは、Apache HTTPサーバ用のモジュールとして実装することができます。

このアプローチは、インフラストラクチャ・スタック全体での懸念の分離を促進します。これは、それぞれの層は、それが意味することに集中することができます。アプリケーション層は、それが今度はクリーンで「RESTfulな」URLのを維持したコンテンツ、に厳密に集中することができ、すべてでライセンスを心配する必要はありません。

あなたのライセンスは同時ユーザーに基づいている場合は、

、HTTPダイジェストを実装することは簡単です、あなたは同時ログインの唯一の最大数を有効にできるようになります。ダイジェストは、あなたのセッションがタイムアウトすることができますので、有効期限データを渡すための規定を持っています。

認証状態は、それが透明でubiquituousあるbeause、どこにもHTTP authetnicationで保持している。

たぶん、ライセンスを行うためのより多くのRESTfulな方法は、リクエストが処理される速度ではなく、同時セッション数を制限することです。ユーザーが後でもう一度試して示唆いくつかのテキストと一緒に、過去1時間に要求の数を追跡し、そしてそれは、顧客が支払った数を超えた場合、503 Service Unavailable応答を提供します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top