Django request.user 在第三方重定向后成为 AnonymousUser
Django request.user become AnonymousUser after third party redirect
test.html:
<a href="https://auth.ebay.com/oauth2/authorize? ...">authorize</a>
views.py:
from django.contrib.auth.decorators import login_required
@login_required
def myview(req):
user = req.user
return render(req, 'test.html')
对于 ebay 的 oauth 过程,您必须向用户提供一个 link 到 ebay 的服务器,它会询问用户是否要向您提供凭据。如果他们接受,ebay 会使用包含访问密钥的查询字符串将用户重定向到给定的 url。
问题是,当我通过 ebay 授权我的应用程序时,用户被重定向到我的登录页面(尽管已经登录)。如果我删除 @login_required
装饰器,则改为 req.user
returns AnonymousUser。这是一个问题,因为我不知道将访问令牌分配给哪个用户。
我在这里错过了什么?
请注意我正在使用 ngrok 来隧道化我的服务器,我没有遇到任何问题
呈现 myview
而不是用户是匿名的事实。
问题是当我最初登录用户时,我使用的是域 localhost:8000
而不是我的 ngrok 实例。
使用我的 ngrok 地址登录我的用户解决了这个问题。
test.html:
<a href="https://auth.ebay.com/oauth2/authorize? ...">authorize</a>
views.py:
from django.contrib.auth.decorators import login_required
@login_required
def myview(req):
user = req.user
return render(req, 'test.html')
对于 ebay 的 oauth 过程,您必须向用户提供一个 link 到 ebay 的服务器,它会询问用户是否要向您提供凭据。如果他们接受,ebay 会使用包含访问密钥的查询字符串将用户重定向到给定的 url。
问题是,当我通过 ebay 授权我的应用程序时,用户被重定向到我的登录页面(尽管已经登录)。如果我删除 @login_required
装饰器,则改为 req.user
returns AnonymousUser。这是一个问题,因为我不知道将访问令牌分配给哪个用户。
我在这里错过了什么?
请注意我正在使用 ngrok 来隧道化我的服务器,我没有遇到任何问题
呈现 myview
而不是用户是匿名的事实。
问题是当我最初登录用户时,我使用的是域 localhost:8000
而不是我的 ngrok 实例。
使用我的 ngrok 地址登录我的用户解决了这个问题。