如何授予用户临时权限?

时间:2019-08-21 06:56:02

标签: django

在我的应用程序中,我希望用户在完成敏感操作(如编辑其订阅)之前重新输入密码。成功重新认证后,权限将受到时间限制。

我找不到支持该功能的django功能,但是由于django似乎可以完成我认为值得询问的所有其他事情-django可以做到这一点还是可以将其配置为做到这一点?

1 个答案:

答案 0 :(得分:2)

您不需要明确的许可。 session是在用户上设置临时属性的理想选择。

例如,当用户重新认证时,您可以添加时间戳记:

request.session['reauth_at'] = datetime.datetime.now()

并在“编辑订阅”视图中进行检查:

earliest_reauth = datetime.datetime.now() - REAUTH_EXPIRY_DURATION
if request.session.get('reauth_at', datetime.datetime.min) > earliest_reauth:
    ... allow ...