小编use*_*695的帖子

Tastypie请求用户在注销方法上是匿名的

使用tastypie API并为用户资源实现一些功能(遵循此示例代码:如何使用tastypie登录django),我想知道如何存放经过身份验证的用户或如何以正确的方式访问它.在测试登录方法时:

curl -u "user:pw" -H "Content-Type: application/json" -X POST --data '{"username" : "user", "password": "pw"}' http://localhost:8000/api/user/login/?format=json   
Run Code Online (Sandbox Code Playgroud)

一切正常; 但是logout方法将request.user视为匿名用户.如何向正确认证的用户传递注销方法?非常感谢.

来自api.py的片段

class UserResource(ModelResource):
    class Meta:
        queryset = AppUser.objects.all()
        resource_name = 'user'
        fields = ['first_name', 'last_name', 'username', 'email', 'is_staff']
        allowed_methods = ['get', 'post', 'patch']
        always_return_data = True
        authentication = BasicAuthentication()
        authorization = Authorization()

    def prepend_urls(self):
        params = (self._meta.resource_name, trailing_slash())
        return [
            url(r"^(?P<resource_name>%s)/login%s$" % params, self.wrap_view('login'), name="api_login"),
            url(r"^(?P<resource_name>%s)/logout%s$" % params, self.wrap_view('logout'), name="api_login")
        ]

    def login(self, request, **kwargs):
        """
        Authenticate a user, …
Run Code Online (Sandbox Code Playgroud)

api django basic-authentication tastypie

3
推荐指数
1
解决办法
753
查看次数

标签 统计

api ×1

basic-authentication ×1

django ×1

tastypie ×1