Python 具有Django开放Id的QBO,回调匿名用户
我已经将Django连接到QBO(QuickBooks Online),并且似乎在使用1个随机帐户时遇到了问题。我将Intuit oauth Python库与Django一起使用。对于这个特定的帐户,请求被发送到QBO、登录和连接。返回到我的应用程序时,将调用此回调。Python 具有Django开放Id的QBO,回调匿名用户,python,django,oauth-2.0,openid-connect,quickbooks-online,Python,Django,Oauth 2.0,Openid Connect,Quickbooks Online,我已经将Django连接到QBO(QuickBooks Online),并且似乎在使用1个随机帐户时遇到了问题。我将Intuit oauth Python库与Django一起使用。对于这个特定的帐户,请求被发送到QBO、登录和连接。返回到我的应用程序时,将调用此回调。request似乎处于某种奇怪的状态,因为日志告诉我request.user是一个匿名用户。同样在我把它注释掉之前,在state\u-tok检查中,这实际上会失败。在Chrome浏览器上,会话似乎被随机清除,或者请求丢失 日志: 型
request
似乎处于某种奇怪的状态,因为日志告诉我request.user
是一个匿名用户。同样在我把它注释掉之前,在state\u-tok
检查中,这实际上会失败。在Chrome浏览器上,会话似乎被随机清除,或者请求丢失
日志:
型号:
from django.contrib.auth.models import User
...
class BusinessAccount(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
...
视图:
from django.contrib.auth.models import User
...
class BusinessAccount(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
...
def acccounting_callback(request):
auth_client = AuthClient(
settings.CLIENT_ID,
settings.CLIENT_SECRET,
settings.REDIRECT_URI,
settings.ENVIRONMENT,
state_token=request.session.get('state', None),
)
state_tok = request.GET.get('state', None)
error = request.GET.get('error', None)
print('callback')
for key, value in request.session.items():
if '_auth' not in key:
print('{} => {}'.format(key, value))
if error == 'access_denied':
return redirect('business_account')
if state_tok is None:
return HttpResponseBadRequest()
elif state_tok != auth_client.state_token:
return HttpResponse('unauthorized', status=401)
business_account = BusinessAccount.objects.get(user=request.user)
...