現在のシステムでは、ユーザー認証としてSimple-JWTを使用しています。また、Django REST Framework API Keyも使用します。Simple-JWT のシンプルさには満足しています。ただし、トークン ページを表示できるようにするために Api-Key が必要なアクセス許可を追加したいと考えています。
今のところ、JWT トークンを取得したい場合は、
/project/api/token/ に移動するだけです (アクセス権を取得してトークンを更新するため)。
また
/project/api/refresh/ (アクセストークンを更新するため)
私の settings.py ファイルでは、DEFAULT_AUTHENTICATION_CLASSES と DEFAULT_PERMISSION_CLASSES を設定しました。私の理解では、「HasAPIKey」をデフォルトのパーミッション クラスとして配置すると、すべてのページで Api-Key が必要になります。
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework_api_key.permissions.HasAPIKey',
),
}
ただし、/token/ と /refresh/ の両方には、Api-Key がなくてもアクセスできます。したがって、私の目標は、これらの URL が私の Api-Key を必要とすることを確認することです。
(注:「simple-jwt」がトークンを提供する方法に完全に満足しています。実装は簡単でした。単に「HasAPIKey」権限を追加したいだけです)