django-rest-frameworkを使用してapiを作成するdjangoプロジェクトがあります。django-rest-frameworkでAPI用TokenAuthenticationを使用する方法
トークンベース認証システムを使用したいので、(put、post、delete)のapi呼び出しは、許可されたユーザーに対してのみ実行されます。
私は 'rest_framework.authtoken'をインストールし、各ユーザーにトークンを作成しました。
これで、django.contrib.auth.backends authenticateから、属性としてauth_tokenを持つuserが返されます。 (正常にログインしたとき)。
私の質問はどのように私のapiと api側に投稿要求付きのトークンを送ることができますトークンが有効で正しいユーザーに属しているかどうかを確認するにはどうすればいいですか?
rest_framework.authtokenというアプリで、指定されたユーザーとそのトークンを検証する方法はありますか? が見つかりませんthis非常に便利です!
アップデート(私が行った変更): を追加しました。この私の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)
基本的に重複: http://stackoverflow.com/ジャンゴ-静止フレームワークTokenAuthenticationため、トークン文字列
Token
(see here)によりヘッダに渡され、前置される必要があります質問/ 14838128/django-rest-framework-token-authentication – jdero投稿はトークンの作成についてしか話しません - 私はその部分でやりましたが、httpリクエストでトークンを渡す方法と、与えられたユーザとそのトークン。その部分については身体的な話はしません。 – Peter
これはdjango-rest-frameworkドキュメンテーションで非常によく書かれています。クライアント側では、すべてのHTTPリクエストにヘッダーを追加するだけで、django-rest-frameworkはサーバー側で残ります。有効なトークンが指定されていれば、request.userという正しいユーザーになります。 – jasisz