测试.html:

<a href="https://auth.ebay.com/oauth2/authorize?    ...">authorize</a>

View .py:
from django.contrib.auth.decorators import login_required

@login_required
def myview(req):
    user = req.user

   return render(req, 'test.html')

对于 ebay 的 oauth 过程,您必须向用户提供指向 ebay 服务器的链接,该链接询问用户是否愿意向您提供凭据。如果他们接受,ebay 将用户重定向到一个给定的 url,其中包含一个包含访问 key 的查询字符串。

问题是,当我使用 ebay 授权我的应用程序时,用户会被重定向到我的登录页面(尽管已经登录)。如果我删除 @login_required 装饰器,req.user 将返回 AnonymousUser。这是一个问题,因为我不知道将访问 token 分配给哪个用户。

我在这里缺少什么?

请注意 我正在使用 ngrok 来隧道我的服务器,我没有问题
呈现 myview,而不是用户是匿名的。

最佳答案

问题是,当我最初登录用户时,我使用的是域 localhost:8000 而不是我的 ngrok 实例。

使用我的 ngrok 地址登录我的用户解决了这个问题。

关于python - Django request.user 在第三方重定向后成为 AnonymousUser,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57845566/

10-16 09:53