我正在尝试向我的 webapp 添加身份验证。用户通过以下方式开始身份验证过程:
/authorization/v1/new?client_id=X&response_type=Y&redirect_uri=Z
如果request.user
不存在,我使用以下代码重定向:
try:
user_identity = Identity.objects.get(user=request.user)
except:
resource = '%s?next=/authorization/v1/new' % settings.LOGIN_URL
return HttpResponseRedirect(resource)
这会将用户带到/login/?next=/authorization/v1/new
.
用户成功登录,并被重定向回/authorization/v1/new
.
但是,现在我缺少必需的 GET 参数client_id
、response_type
和redirect_uri
,这会导致授权端点因缺少必需的参数而引发错误。
捕获初始 GET 参数、将它们传递给登录并将它们附加到重定向回身份验证端点的最佳方法是什么?
我考虑过使用会话或修改redirect_uri
附加其他参数,但我仍然需要弄清楚如何通过这个过程捕获单个参数。如果可能的话,我不想修改登录代码。非常感谢任何想法/建议。谢谢!