あなたは、私がこの他の質問に投稿された例を使用することができる必要があります:あなたのケースではFeathers Js Restrict Access To Page on Server Side
を、ユーザーが管理者であるかどうかを確認するためにいくつかのロジックを行う必要があります。デフォルトでは、Feathersが提供するJWTトークンにはuserId
しか含まれません。ユーザーレコードを取得して、ユーザーが管理者であるかどうかを確認できます。ここで
あなたはjwt.verifyブロック内に置くだろうかの例です:
jwt.verify(token, secret, function(err, decoded) {
if (err) {
return res.status(401).send('You are not authorized to view that page.');
}
app.service('users')
.get(decoded.id) // Or _id if you're using MongoDB
.then(user => {
if (user.isAdmin) {
res.render('admin/admin.html', {
title: 'admin'
})
} else {
return res.status(401).send('You are not authorized to view that page.');
}
})
});
それは管理者のために、そう、サーバー上のJWTに値を追加するfeathers-authentication
の次のバージョンで可能になりますJWTペイロードにisAdmin
プロパティを追加することができます。プレリリース版が公開されると、これはかなり簡単になります。それまでは、上記の方法がおそらく最善の方法です。
私はこの同じ問題をhttps://github.com/feathersjs/feathers/issues/357で見つけましたが、回避策はなく、ページのリンクが壊れています。まだミドルウェアのフックを実装する方法を誤解しているか、カスタム認証ロジックを使用しています....接続資格情報でreq、resにアクセスできれば素晴らしいです。 – Victor