4
私はAPIエンドポイントを保護するためにexpress-jwtを使用しており、認証されたユーザーだけが自分のAPIにアクセスできるようにしています。今私はまた、ユーザーの役割にも基づいて自分のAPIを保護したい。たとえば、ユーザーが管理者である場合はいくつかのAPIにアクセスし、スーパー管理者であればアクセスすることができます。これをどのように達成できますか?このコードはAPIコントローラ機能で認証を行っているように見えますexress-jwtによるロールベースの認可?
app.get('/protected',
jwt({secret: 'shhhhhhared-secret'}),
function(req, res) {
if (!req.user.admin) return res.sendStatus(401);
res.sendStatus(200);
});
:私は急行-JWT githubのドキュメントで、このコードスニペットを見つけました。それは唯一の推奨方法ですか?これを行うためのより良い方法はありますか?これに関するベストプラクティスに関するアドバイスはありますか?
多くの場合、承認の方法について詳しく教えてください。特に、たとえば、私は3つのユーザー役割、スーパー管理者、管理者、ユーザーと10のAPIエンドポイントを持っており、簡単にAPI 1、API 2、... API 10と呼ぶことができます。管理者はAPI 1 - > API 3にアクセスできます。スーパー管理者とユーザーだけがAPI 4 - > API 6にアクセスできます。他のユーザーはすべての認証済みユーザーにアクセスできますか?私が考えることができる解決策は、API 1 - > API 3とAPI 4 - > API 6の2つのミドルウェアハンドラを記述することです。あなたのものは何ですか? – congtrungvnit
これは役割情報がトークンに格納されていることを意味しますか? – Learner