新しいプロジェクトに標準の JSON:API を使用するのは良い考えだと思いました。残念ながら、すぐに JWT 認証を機能させることができませんでした。私のセットアップ:
- ジャンゴ
- Django REST フレームワーク
- REST フレームワーク JWT 認証
- Django REST フレームワーク JSON API
認証パスの OPTIONS を取得した場合:
{
"data": {
"name": "Obtain Json Web Token",
"description": "API View that receives a POST with a user's username and password.\n\nReturns a JSON Web Token that can be used for authenticated requests.",
"renders": [
"application/vnd.api+json",
"text/html"
],
"parses": [
"application/vnd.api+json",
"application/x-www-form-urlencoded",
"multipart/form-data"
],
"allowed_methods": [
"POST",
"OPTIONS"
],
"actions": {
"POST": {
"username": {
"type": "String",
"required": true,
"read_only": false,
"write_only": false,
"label": "Username"
},
"password": {
"type": "String",
"required": true,
"read_only": false,
"write_only": true,
"label": "Password"
}
}
}
}
}
次に、Content-Type: application/vnd.api+json で単純に POST しようとすると:
{
"data": {
"user": "user1",
"password": "supersecretpw"
}
}
409 Conflict 応答が返されます。
{
"errors": [
{
"detail": "The resource object's type (None) is not the type that constitute the collection represented by the endpoint (ObtainJSONWebToken).",
"source": {
"pointer": "/data"
},
"status": "409"
}
]
}
トークンを正しく取得するか、上記のパッケージを正しく使用するにはどうすればよいですか?