第三方重定向后,Django request.user成为AnonymousUser

时间:2019-09-08 20:34:32

标签: python django python-3.x ngrok

test.html:

<div class="item">
  <img class="leftImage" src="http://via.placeholder.com/320x180" />
  <p class="rightText">Hello <br/> world.</p>
</div>

<div class="item">
  <img class="leftImage" src="http://via.placeholder.com/320x180" />
  <p class="rightText">Hello <br/> world.</p>
</div>

views.py:

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

对于ebay的oauth流程,您必须为用户提供指向ebay服务器的链接,该链接询问用户是否要向您提供凭据。如果他们接受,ebay会将用户重定向到具有包含访问密钥的查询字符串的给定URL。

问题是,当我使用ebay授权我的应用程序时,用户将被重定向到我的登录页面(尽管已经登录)。如果删除from django.contrib.auth.decorators import login_required @login_required def myview(req): user = req.user return render(req, 'test.html') 装饰器,则@login_required返回AnonymousUser。这是一个问题,因为我不知道将访问令牌分配给哪个用户。

我在这里想念什么?

注意,我正在使用ngrok来建立服务器通道,并且没有问题
呈现req.user,而不是用户是匿名用户。

1 个答案:

答案 0 :(得分:3)

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

使用我的ngrok地址登录用户即可解决此问题。