Django rest framework 核心api请求don';在成功的令牌身份验证后不包括用户
我正在使用Django rest framework 核心api请求don';在成功的令牌身份验证后不包括用户,django-rest-framework,core-api,Django Rest Framework,Core Api,我正在使用django rest框架为Python客户机定义一个restapi。客户端使用coreapi访问API。我使用中间件记录对服务器应用程序的所有访问 我希望客户端通过用户名和密码进行身份验证。然后,我使用这些凭据从auth-token端点接收相应用户的令牌,并将此令牌用于coreapi.auth.TokenAuthentication。然后,我希望coreapi以提供凭据和令牌的用户的名义发送请求,但使用coreapi发出的请求不包括用户 我尝试使用coreapi.auth.Basic
django rest框架
为Python客户机定义一个restapi。客户端使用coreapi
访问API。我使用中间件记录对服务器应用程序的所有访问
我希望客户端通过用户名和密码进行身份验证。然后,我使用这些凭据从auth-token
端点接收相应用户的令牌,并将此令牌用于coreapi.auth.TokenAuthentication
。然后,我希望coreapi以提供凭据和令牌的用户的名义发送请求,但使用coreapi发出的请求不包括用户
我尝试使用coreapi.auth.BasicAuthentication
和coreapi.auth.TokenAuthentication
。在这两种情况下,我都能够验证和接收正确的API端点,但在我的middlware中记录coreapi发出的请求时,没有设置任何用户
客户端代码
client=coreapi.client()
schema=client.get(schema\u url)
此时,我收到模式:
token-auth: {
create(username, password)
}
然后,我使用tokenauth
端点为我的用户获取令牌
response = client.action(schema, ['token-auth', 'create'], params={'username': username, 'password': password})
auth = coreapi.auth.TokenAuthentication(scheme='Token', token=response['token'])
client = coreapi.Client(auth=auth)
schema = self.client.get(schema_url)
模式现在看起来已完成
token-auth: {
create(username, password)
}
users: {
list([page])
recent_users()
read(id)
}
# ...
中间件
My middleware为每个收到的请求创建日志对象,并像下面这样附加用户:
if request.user.is_authenticated:
logs_data['user'] = request.user
中间件成功地记录了Python coreapi客户端发出的所有请求,并相应地设置了字段。例如,“HTTP\u USER\u AGENT”:“coreapi”
包含在请求元数据中。我希望request.user
设置为先前用于身份验证的用户,但我收到的都是匿名用户
有没有一种方法可以通过coreapi发送经过身份验证的请求,包括用户