2017-09-23 8 views
0

現在、私はトークンを手動で生成していますが、jwtトークンを使用したいと思います。私は公式のドキュメントやその他のリファレンスに従っていますが、まだ問題を把握できません。DRF-jwtトークンを取得する

serializers.pyトークンの認証後に手動で生成されます。私は'rest_framework_jwt.authentication.JSONWebTokenAuthentication',

が含まれている設定で

class UserLoginSerializer(serializers.ModelSerializer): 
    token = serializers.CharField(allow_blank=True, read_only=True) 

    class Meta: 
     model = User 
     fields = [ 
      'username', 
      'password', 
      'token', 
     ] 
     extra_kwargs = {"password": 
          {"write_only": True} 
         } 

    def validate(self, data): 
     username = data.get('username', None) 
     password = data.get('password', None) 

     try: 
      usern = Account.objects.get(username=username) 
     except ObjectDoesNotExist: 
      raise serializers.ValidationError("User does not exists") 

     if usern.check_password(password): 
      data["token"] = "asdasdasdasd" 
     else: 
      raise serializers.ValidationError("password invalid") 

     return data 

urls.py

from django.conf.urls import url 
from .views import AuthRegister, AuthLogin 
from rest_framework_jwt.views import obtain_jwt_token 

urlpatterns = [ 
    url(r'^register/$', AuthRegister.as_view()), 
    url(r'^login/$', AuthLogin.as_view()), 
    url(r'^api-token-auth/', obtain_jwt_token), 
] 

私はurl(r'^api-token-auth/', obtain_jwt_token)を使用しているが、私はjwtトークンを生成する方法を把握することができません。 誰か助けてください!

答えて

0

エンドポイント/api-token-auth/のAPIへのHTTP POSTコールを行う必要があります。この呼び出しでは、本体には2つのキー(usernamepassword)が含まれます。 cURLのを使用して

例:

curl -X POST -d username=abcd -d password=1234 http://ip:port/api-token-auth/ 
関連する問題