2017-01-03 15 views
1

私はREST APIを開発していますが、JWT経由で認証を行う正​​しい方法、トークンのペイロードに含める情報、ベストプラクティスと最も安全なものは何かについて疑問があります:セキュリティJWTペイロード

ペイロードトークンの内側にmongoDBのObjectIdが含まれていますか?

{ 
    "sub": "507f191e810c19729de861ea", 
    "name": "John Doe", 
    "rol": "admin" 
} 

ユーザのような保護された経路に移動した場合、トークンの「サブ」をチェックした後:requesの中

“api/dashboard /: userId“ 

そしてコンパ、

.get('api/dashboard/:userId', (req, res)=> { 
    if(Req.params.uiserID != token.payload.sub) { 
    Res.status(401).send({ message: ‘No authorization’}) 
} 
}) 
Express.js

で、この例

上記は安全だと思われますか?

答えて

0

請求書subは、JWTの主題であるプリンシパルを識別し、発行者(またはグローバル)のコンテキストで一意であることが予想されます。内部IDを送信することは、それが唯一であることを尊重し、変更しないでプライベートデータを明らかにしない限り、悪い習慣ではありません。 (内部の16進文字列はプライベートと見なすことはできません)

サーバー側では、信頼性を確認するためにトークンの署名を確認し、データが変更されていないことが必要です。その後、JWT

に埋め込まれたデータを使用して、保護されたリソースへのアクセスを確認することは安全です
関連する問題