首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从DRF get-token api获取令牌

从DRF get-token api获取令牌
EN

Stack Overflow用户
提问于 2016-07-12 13:27:41
回答 2查看 120关注 0票数 0

我的自定义注册api

代码语言:javascript
复制
from rest_framework import viewsets
from rest_framework import serializers

class SignupSerializer(serializers.Serializer):
    email = serializers.EmailField(required=True)
    password = serializers.CharField(required=True, write_only=True)

    def validate_email(self, val):
        try:
            User.objects.get(username=val)
            raise serializers.ValidationError("Email-ID already Exist")
        except User.DoesNotExist:
            return val

class SignupView(viewsets.ModelViewSet):

    serializer_class = SignupSerializer

    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        data = serializer.data

        email = data.get('email')
        password = data.get('password')

        u = User(email=email, username=email)
        u.set_password(password)
        u.save()

        data = {
            'message': 'Successfully Created!',
            'data': {'id': u.id, 'email': email},
        }
        return Response(data)

Toekn get api

代码语言:javascript
复制
from rest_framework.authtoken import views
urlpatterns = [
    url(r'^api-token-auth/', views.obtain_auth_token),
]

当我点击signup api时,它返回成功响应,我的意思是

{‘消息’:‘成功创建!’,‘数据’:{'id':1,‘电子邮件’:'xyz@gmail.com'} }

但是,当我试图使用上面的令牌api为这个用户生成/获取令牌时,它会说..invalid凭据吗?

代码语言:javascript
复制
{
  "non_field_errors": [
    "Unable to log in with provided credentials."
  ]
}

但是,如果我使用管理命令创建用户并使用相同的api获取令牌,那么它可以工作吗?

注册api有什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-13 10:42:32

您应该从序列化程序中删除write_only=True。这样就可以修正错误了。

票数 1
EN

Stack Overflow用户

发布于 2016-07-12 15:31:29

错误消息实际上告诉您,您的请求无法到达视图,这是因为其中一个中间件引发了错误。

最简单(但不太安全)解决方案是在成功注册时返回API令牌,或者添加另一个带有登录(返回令牌)的视图。

要想得到明确的答案,您需要提供更多信息,比如身份验证后端的配置。

您可以在这里找到关于DRF http://www.django-rest-framework.org/api-guide/authentication/#how-authentication-is-determined中身份验证的更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38330282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档