2016-06-21 11 views
4

私はJson Webトークン(JWT)経由でステートレスREST APIを実装しています。現時点では、私はフロントエンドにユーザーデータを渡すための最良の方法は何かを考えています。JWTでユーザーデータを処理するベストプラクティス

  1. JWT作成時にJWTのペイロードにユーザデータを追加します。それらは私が見る2つのオプションがありますが、私はフロントエンドusername, email, role, full_name, description, profile_img, facebook_id, twitter_id, custom_setting_1, custom_setting_2, custom_setting_3, custom_setting_4

    にアクセスする必要があるフィールドです。そして、それをフロントエンドでデコードします。ペイロードがかなり大きくなるすべてのデータを追加すれば心配ですが。

  2. username, roleのような変更不可能なフィールドのみをJWTに追加できます。 JWTが作成されてフロントエンドに返された後、APIからユーザーデータの別の要求が送信されます。

ここでも何か不足している可能性があります。だから、JWTを使ってユーザーデータを扱う最善の方法はなんですか?

+0

それのために。単純なJSONでは不十分ですか? –

+0

APIコールの認証にはJWTが使用されます。ですから実際には、JWTにユーザーデータを追加するか(そこには賛否両論あり)、ユーザーデータを取得するために追加のAPI要求を保持する必要があります。 – Websirnik

+0

私の答えが役に立つかどうか教えてください。 –

答えて

1

認証用にJWTを使用している場合(クライアントがすべての要求でサーバーに送信する必要がある認証トークンがサーバーで生成されていることを理解しています)、トークンにすべての詳細を含める必要はありません。

あなたの第二のアプローチは、はるかに理にかなって:

私はJWTにusernameroleのような唯一の不変のフィールドを追加することができます。 JWTが作成されてフロントエンドに返された後、APIからユーザーデータの別の要求が送信されます。

JWTをリーンにして、ユーザーに詳細を要求してください。

以下を確認して、認証されたユーザの詳細情報を返すようにURLを設計する方法の詳細については

:私はあなたがJWTを必要とする理由を把握しようとしている

関連する問題