簡體   English   中英

DRF令牌認證教程

[英]DRF Token Authentication Tutorial

我是Django的新手,但是我想學習如何使用Angularjs實現DRF令牌認證。 我發現的一些教程在顯示如何設置以及它們的源代碼等方面並沒有太大幫助。

另外,出於生產目的,使用第三方包裝是否更實用? 或設置我自己的(這是針對個人項目的,因此時間貢獻不是問題)。

我的代幣驗證童車代碼: Github

在settings.py中

INSTALLED_APPS = (
    ...
    'rest_framework.authtoken'
)
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ],
}

在signals.py中

from django.conf import settings
from django.db.models.signals import post_save
from django.dispatch import receiver
from rest_framework.authtoken.models import Token

@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
    if created:
        Token.objects.create(user=instance)

在views.py中

class ExampleAuthToken(APIView):
    def post(self, request, format=None):
        username = request.data.get("username")
        password = request.data.get("password")
        try:
            user = User.objects.get(username=username)
        except User.DoesNotExist:
            user = User.objects.create_user(username=username)
            user.set_password(password)
            user.save()
        content = {
            'user': unicode(user.username),
            'token': unicode(user.auth_token),
        }
        return Response(content)

在urls.py中

urlpatterns = [
    url(r'^authtoken/', ExampleAuthToken.as_view(), name='authtoken'),
]

用angularjs調用;

var credentials = {
  username: "root",
  password: "root123"
};

$.post("http://localhost:8000/authtoken/", credentials {
    success: function(data){
          console.log(data);
    }
}

我肯定會使用圖書館。 對於令牌認證,有一個漂亮的django-rest-framework-jwt-安裝和設置很簡單。 為了幫助使用Angular JS,似乎有drf-angular-jwt (它使用DRF-JWT,但我沒有使用過)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM