2017-11-11 1 views
0

私はノードJS、JWT、Sequelizeを使用してAPIを使用してアプリケーションを処理しています。フロントエンドにはReact JS/reduxを使用しています。私は正常にアプリケーションのログイン/ログアウト/レジスタの部分を実装しましたが、ログインしたcurrent_userにアクセスする必要があります。ノードjs JWT現在のユーザーを取得

私はlocalStorageにJWTを入れましたが、 、ユーザーのメールアドレス、ユーザー名、および現在ログインしているユーザーに関する詳細情報を表示します。

Cookieを使用しますか?ローカルストレージ ?または、私のAPIにcurrentUserメソッドを作成する必要がありますか?

誰かが役に立つリソースやアドバイスを見つけるのを手伝ってもらえますか?

ありがとうございました!

答えて

1

LocalStorageにトークンを格納しても問題ありません。ユーザーの詳細を取得する必要がある場合は、getUserなどのAPIでエンドポイントを作成します。 jwt.decode(accessToken, JWT SECRET HERE)を使用して、accessTokenが有効であると仮定すると、デコードされた値(ユーザーになります)を返します。

1

この情報をJWTのペイロードに入れると、サーバー上でのデコードや秘密の必要がなくなり、トークンをLocalStorageに入れていつでも使用できます。仕様により、JWTは<headerINfo>.<payloadInfo>.<signature>です。だから、クライアント上で、あなただけ行うことができます。

明らか
// given a payload object of { username: 'bob', userid: 1, email: '[email protected]' } 
const tokenParts = token.split('.'); 
const encodedPayload = tokenParts[1]; 
const rawPayload = atob(encodedPayload); 
const user = JSON.parse(rawPayload); 
console.log(user.username); // outputs 'bob' 

を、この情報は、トークンへのアクセス権を持つすべてのクライアントが利用可能なので、あなただけのそれはのためにOKだとペイロードにものを載せていきたいと思います。

関連する問題