django-rest-framework を使用して API を作成する django プロジェクトがあります。
トークンベースの認証システムを使用して、(put、post、delete) の API 呼び出しが許可されたユーザーに対してのみ実行されるようにしたい。
「rest_framework.authtoken」をインストールし、ユーザーごとにトークンを作成しました。
したがって、django.contrib.auth.backends 認証から、属性として auth_token を使用してユーザーを返します。(正常にログインした場合)。
今私の質問は、ポストリクエストでトークンをAPIに送信する方法と、API側でトークンが有効で正しいユーザーに属しているかどうかを確認するにはどうすればよいですか?
特定のユーザーとそのトークンを検証するためのアプリ rest_framework.authtoken のメソッドはありますか? これは非常に便利ではありません。
更新(私が行った変更):これをsettings.pyに追加しました:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
)
}
また、ヘッダーでトークンを送信していますが、まだ機能していません:
if new_form.is_valid:
payload= {"createNewUser":
{ "users": request.POST["newusers"],
"email": request.POST["newemail"]
}
}
headers = {'content-type' : 'application/json',
'Authorization': 'Token 6b929e47f278068fe6ac8235cda09707a3aa7ba1'}
r = requests.post('http://localhost:8000/api/v1.0/user_list',
data=json.dumps(payload),
headers=headers, verify=False)