私は、認証トークンを使用して終了: http://www.django-rest-framework.org/api-guide/authentication/
ので、私はワークフローを共有したいと思います。
まず、セットアップが必要です。 settings.pyでINSTALLED_APPSを修正し、ドキュメントのようにREST_FRAMEWORKを追加してください。 次に、テーブルを追加する必要があるため、python manage.py syncdb
を実行する必要があります。 次に、apiをルーティングするためにurls.pyにいくつかのURLを追加する必要があります。あなたはこのコードを使用して、トークンを作成し、取得することができ :
from rest_framework.authtoken.models import Token
token = Token.objects.create(user=User.objects.get(username='john'))
print token.key
最後に、あなたが機能ベースまたはクラスベースのビューを使用しているかどうかに依存して、あなたのビューを変更する必要があります。
from rest_framework.authentication import TokenAuthentication
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.decorators import authentication_classes, permission_classes
from rest_framework.decorators import api_view
@api_view(['GET', 'POST'])
@authentication_classes((TokenAuthentication,))
@permission_classes((IsAuthenticated,))
@login_required
def mybooks(request):
entries = Book.objects.all()
return render(request, 'mybooks.html', {'entries': entries})
最後に、それをテストするために:ここに は、私が使用する関数ベースの図である
import requests
token = '243124c52f7583e320d043c4395bd99f63344035'
headers = {'Authorization' : 'Token {}'.format(token)}
page = requests.post('http://127.0.0.1:8000/mybooks/', headers=headers)
print page.content
注私は、高度なカスタムのシリアル化を持っているので、私の場合、私は、プレーンのシリアル化を定義する必要はありませんことをそれはここでの話題ではありません。
出典
2016-05-19 07:49:09
max
何ですか?なぜ他のユーザーのCSRFトークンが必要だと思うのですか、あるいはCSRFトークンが特定のユーザーに割り当てられていると思うのですか? –