1

新しいプロジェクトに標準の 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"
        }
    ]
}

トークンを正しく取得するか、上記のパッケージを正しく使用するにはどうすればよいですか?

4

1 に答える 1