私はトークンを扱うのがとても新しいです。昨日学習を始めました。JWTトークンのプロパティに基づいてフロントエンド(角度)ビューに表示される内容を変更するにはどうすればよいですか?
私はExpressバックエンドAPIを持っています。私はトークンが、任意のAPIエンドポイント/ jsonデータのデータに誰かがアクセスできないようにしていることを理解しています...しかし、JWTが角張っているときにJWTをどのように読み込み/復号化できますか?
I.E.このユーザーはログインしているため、このページを表示できますが、この特定のユーザーはこのイベントの作成者です。したがって、このイベントのショーページでは、招待されたユーザーにはイベントの作成者が表示されますが、イベントの作成者のみが、クリックされるとそのイベントへの削除要求を行います。他のユーザーにはこのボタンは表示されません。
これが可能なのを見る唯一の方法は、ユーザーオブジェクトを含むJWTをフロントエンドでデコードできることです。デコードされたJWTプロパティを持つ変数にアクセスできます。 I.E.、ユーザ名およびユーザID。 `` `
if (decodedJWT.user.username === event.creator.username) {
DO SOMETHING HERE LIKE DISPLAY A CERTAIN BUTTON
}
` ``
感謝を:その方法は、角度でレンダリングされたビューページに、私は次のようなロジックをコーディングすることができます。
app.use('/userinfo', expressJwt({secret: secret}));
は、ここでは、
/userinfo
はJWTとあなたの秘密のフレーズで保護されていることを確認してください:
トークンのクライアント側を復号化することは、最初にjwtを使用するという全目的に反します。それをサーバ側で行い、そこから無関係のデータが必要なものはすべて渡してください。 – charlietfl
JWTは混乱する可能性がありますが、charlieftlは正しいです。クライアント側のトークンをデコードする必要はありません。まだ理解していない方はこれを読んでください:https://jwt.io/introduction/ –
私のコメントに追加するには、JWT *を秘密鍵なしでデコードすることはできません。 –