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 ...
推荐阅读
- html - 一种 CSS 样式仅适用于本地主机而不适用于服务器托管
- javascript - 在Javascript中调用带参数的函数和OnClick触发不带参数的函数之间的区别?
- php - 使用 Phalcon 登录 Facebook 中的重定向过多
- reactjs - 类型上不存在属性“onload”
- java - URL 中的 % 重定向到 HTTP ERROR 400 而不是默认错误页面
- c# - 如何将字符串属性转换为布尔值?
- c# - 解析 "?<=Sys ).*" - 量词 {x,y} 什么都不做
- azure-ad-b2c - 自定义策略中的 Azure AD B2C 多步骤页面
- java - 使用 Spring Boot 将记录插入数据库时无法提取 ResultSet
- autocomplete - 是否可以在 Google Colab 的笔记本中自动完成?