0

Mon django-rest-auth sur l'authentification envoie la réponse suivanterenommer `key` en` access_token` dans django-rest-auth?

{"key":"XXXXXXXXXXXXXX"} 

Maintenant, je suis en utilisant ember-simple-auth spécifiquement oauth2-password-grant pour l'authentification qui attend access_token dans le corps de réponse. Après avoir regardé le code source de ember js here, j'ai découvert que la valeur access_token est définie comme chaîne et ne peut pas être modifiée. Ma question est comment puis-je implémenter l'authentification en utilisant les deux piles. Est-il possible que je peux renommer key en access_token en django?

Répondre

0

Vous pouvez créer votre propre MyLoginView qui sous-classe l'original LoginView de django-rest-auth et créer un sérialiseur personnalisé qui renvoie le champ access_token.

Quelque chose comme ceci:

my_app/serializers.py

from rest_auth.models import TokenModel 
from rest_framework import serializers 

class MyTokenSerializer(serializers.ModelSerializer): 
    """ 
    Serializer for Token model. 
    """ 
    access_token = serializers.SerializerMethodField() 

    class Meta: 
     model = TokenModel 
     fields = ('access_token',) 

    def get_access_token(self, obj): 
     return object.key 

my_app/views.py

from rest_auth.views import LoginView 
from my_app.serializers import MyTokenSerializer 

class MyLoginView(LoginView): 
    def get_response_serializer(self): 
     return MyTokenSerializer 

urls.py

from my_app.views import MyLoginView 

url(r'^login/$', MyLoginView.as_view(), name='my_login'),