2016-09-17 1 views
0

私はemock-simple-auth-token addonを使用して、背面に模擬expressjsサーバを、ember(ember-simple-auth)を前面に実行しています。私はJWTトークンを使用しています。私は自分のユーザー情報を送信する最良の方法を決定しようとしています。通常、ユーザーが資格情報を送信すると、新しいトークンを作成し、そのコピーをデータベースに保存して(私はmongodbを使用しています)、フロントエンドに送信してトークンを使用して情報ユーザー情報を取得します。トークンを使用してユーザー情報を取得する初期ログイン時に呼び出される&/current_userルートは/ auth /トークン(トークンを認証して送信し、コピーを作成してデータベースに格納します)を持っています。フロントエンド/バックエンドユーザ認証についてのアドバイスを探しています

トークンの最初のペイロードにユーザー情報を別のルートを使用して送信する方が良いですか?比較を行い、ユーザー情報を取得するためにデータベースにコピーを格納する必要がありますか?

トークンリフレッシュの利点は何ですか?

答えて

0

認証にJwt-Authを使用しています。 - ユーザーの資格情報を送信した後、私の知識に従って、資格情報が正しい場合はトークンで応答し、それ以外の場合はエラーを送信します。

- なぜトークンをdbに保存していますか? トークンをクライアントに送信します(ステートレス)。クライアントがデータを要求した場合、トークンをチェックする必要があります。それが有効であれば適切な応答を返し、それ以外の場合はトークンエラーを返します。

- トークンをリフレッシュする必要がありますか?セキュリティ目的で 応答のたびにトークンを変更してください。 TTLあなたのトークンは一定の時間(例えば60分)有効です。それ以降は無効になります。

JWTの動作方法です。

+0

ここで設定します。ユーザーはユーザー名/パスワードを入力し、トークンを送信します。現在/ current_userというルートがあります。ユーザーが自分のトークンを取得すると自動的に/ current_userが呼び出されます。トークンを使用して送信するユーザー情報を確認します(データベースにトークンのコピーがあるので、 「現在のユーザー」情報を送信します)。最初のペイロードにユーザー情報を送信する方が理にかなっていますか?比較を行う代わりにトークンをデコードし、データをフロントエンドに送り返す必要がありますか? – Horizon

+0

私が何を求めているかは、あなたが何かを参照しなければ何を送るべきかを知っているかどうかです。 – Horizon

+0

このリンクをご覧ください。 https://github.com/tymondesigns/jwt-auth/wiki/Authentication $ user = JWTAuth :: parseToken() - > toUser();ユーザデータを与える。それからユーザーの種類を確認することができます。データベースにトークンを保存する必要はありません(あなたは正しく実行していません)。実際には、トークンには、ユーザーおよびタイムスタンプなどの詳細が含まれています(エンコードされています)。あなたのケースでトークンからデータを取得する方法をチェックしてください。 – Harsha

関連する問題