Python 在登录django之前是否应该存储状态?

Python 在登录django之前是否应该存储状态?,python,django,login,callback,Python,Django,Login,Callback,login_required可以在django中用作decorator,但带有用户/密码的login.html受应用程序限制 @login_required def myview(request): ... 现在我想在login.html中显示一个按钮,将用户重定向到其他站点的oauth流。 该网站修复我的回调url静态。现在不需要用户/密码 那个么,在从oauth服务器回调之后,如何将用户重定向到最后一个请求(可能是带有数据的post) 会话/cookies是否应用于存储请求对象?您可以在D

login_required可以在django中用作decorator,但带有用户/密码的login.html受应用程序限制

@login_required
def myview(request):
...
现在我想在login.html中显示一个按钮,将用户重定向到其他站点的oauth流。 该网站修复我的回调url静态。现在不需要用户/密码

那个么,在从oauth服务器回调之后,如何将用户重定向到最后一个请求(可能是带有数据的post)


会话/cookies是否应用于存储请求对象?

您可以在Django中将会话信息附加到匿名用户的会话;每个人都会得到一个会话cookie,匿名与否。该数据在用户登录后保留

但是,如果您的会话数据存储在数据库中,那么随着时间的推移,它将占用越来越多的空间,并且您希望有一个定期任务来清除旧会话

但您是否应该保存POST数据以供以后重播

在某些情况下,这可能没问题——当您确定POST请求是幂等的,已经运行过一次,并且数据只是用来生成正确的页面供用户查看时


不过,您可能不应该将其作为通用解决方案来实现。如果可以构造一个GET请求,通过OAuth重定向,然后作为经过身份验证的用户自动发布,那么您的手上可能有一个主要的CSRF漏洞。

您可以在Django中将会话信息附加到匿名用户的会话;每个人都会得到一个会话cookie,匿名与否。该数据在用户登录后保留

但是,如果您的会话数据存储在数据库中,那么随着时间的推移,它将占用越来越多的空间,并且您希望有一个定期任务来清除旧会话

但您是否应该保存POST数据以供以后重播

在某些情况下,这可能没问题——当您确定POST请求是幂等的,已经运行过一次,并且数据只是用来生成正确的页面供用户查看时

不过,您可能不应该将其作为通用解决方案来实现。如果可以构造一个GET请求,通过OAuth重定向,然后作为经过身份验证的用户自动发布,那么您的手上可能有一个很大的CSRF漏洞