gpt4 book ai didi

Django强制密码到期

转载 作者:行者123 更新时间:2023-12-04 03:44:46 25 4
gpt4 key购买 nike

是否有django应用程序可在一定间隔(例如30天)后强制使用户密码过期?我正在使用djangp的身份验证,并想要扩展它或使用社区应用程序。

到目前为止我尝试过的是:

  • 在用户配置文件中添加了一个字段,用于存储上次更新密码的日期。
  • 扩展了登录方法,以检查该日期并将用户重定向到密码更改页面。

  • 我感到困惑的是:
  • 阻止用户访问网站,直到更改密码。
  • 用户应该无法登录,或者仅输入URL即可直接访问该页面。

  • 请注意,我不想使用中间件,因为这将限制资源。

    最佳答案

    您似乎走在正确的轨道上。设置上次更新密码的日期,检查时间增量是否大于30天,如果是,则重定向至更改密码页面。您的“登录” View 应基本保持不变,但如果时间间隔大于30天,则不要实际将用户登录到请求对象。

    from datetime import date, timedelta
    from django.contrib.auth import authenticate, login

    def my_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user is not None:
    if user.is_active:
    if date.today() - user.password_date > timedelta(days=30):
    # Redirect to password change page
    else:
    login(request, user)
    # Redirect to a success page.
    else:
    # Return a 'disabled account' error message
    else:
    # Return an 'invalid login' error message.

    关于Django强制密码到期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15571046/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com