首页 > 解决方案 > 如何授予用户临时权限?

问题描述

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

我找不到启用此功能的 django 功能,但由于 django 似乎做了我认为值得询问的所有其他事情 - django 可以这样做还是可以配置为这样做?

标签: django

解决方案


您不需要明确的许可。会话非常适合设置用户的临时属性。

例如,当用户重新授权时,您可以添加时间戳:

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 ...

推荐阅读