私の質問は、具体的には、REST実装によるJWTの私のアプローチに関するものです。私のJWT-REST APIへのアプローチ
私はクライアント側でAngularJSを、サーバー側でPHPを使用しています。
はできるだけ早く初めてページが読み込まれると、私は、サーバーへの1つのGETリクエストを発射し、Webサービス(符号化された署名)から署名を取得します。
誰かがWebページを開くと、我々は、フォームにログイン存在し、ユーザーはそれを正しく記入するとき、我々はJWT暗号化された形式でサーバにログイン情報を送信します。
Header(ALGORITHM & TOKEN TYPE).Payload(Login form data).Signature(Received from the first GET web service call)
さて、ログイン後、我々が得たexp
すなわちトークンの期限切れタイムアウト・データをサーバーから取得します。これで、ログインしたユーザーにもう1つのフォームが表示されます。従業員を作成するために使用されます。だから、私の実装は次のとおりです。
- 我々は(angularjsを使用して)フォームを提示
- ユーザーはデータ
- システムを入力フォームの項目は、システムが
addEmployee
Webサービスをトリガし、その後正しい場合、フォーム - を検証します。しかし、我々が渡すデータは
header authorization bearer
のみです。たとえば:だから
Host: mysite.com POST: /services/addEmployee Accept: application/json Content-Type: application/json Authorization: Bearer Header(ALGORITHM & TOKEN TYPE).PAYLOAD(Employee form data + EXP token expire time received in the response of login web service).Signature
、ここでは、リクエストボディには何も渡しません。これはPOST要求ですが。サーバー側では、Bearerをデコードしてペイロードを取得するだけです。
私は実際にプレーンテキスト形式でデータを送信したくありません。たとえば、POSTデータを本体に送信すると、誰が何が渡されているのかを見ることができます。私はあるレベルまで私のWebサービスを暗号化したい。とにかくこのアプローチは正しいか、または有害であるか?
なぜhttpsを使用しないのですか? –
JWTはHTTPS上でのみ動作します。まあ、どんなスタティックなクッキーベースのセッションスキームもHTTPSでしか動作しません。 –
@MK。 JWTはHTTPとHTTPSの両方で動作します。 –