You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅允许特定域名邮箱用户访问站点功能?

修改方案

直接修改模板中的判断条件,加入邮箱域名校验即可,同时处理已登录但不符合域名的用户场景:

{% if user.is_authenticated and user.email.endswith '@example.com' %}
     <a href="{% url 'quizlist' %}" class="btn btn-secondary btn-lg">Quizzes</a>
     <a href="{% url 'profile' %}" class="btn btn-secondary btn-lg">Profile</a>
     <a href="{% url 'logout' %}" class="btn btn-secondary btn-lg mr-2">Log Out</a>
{% elif user.is_authenticated %}
     <!-- 已登录但非指定域名用户,仅显示退出登录按钮 -->
     <a href="{% url 'logout' %}" class="btn btn-secondary btn-lg mr-2">Log Out</a>
{% else %}
     <div class="d-flex justify-content-center">
        <a href="{% url 'register' %}" class="btn btn-primary btn-lg mr-2">Register</a>
        <a href="{% url 'login' %}" class="btn btn-secondary btn-lg">Log In</a>
     </div>
{% endif %}

关键说明:

  • 利用Django模板字符串内置的endswith方法,直接在模板中校验用户邮箱后缀是否为@example.com
  • 新增elif user.is_authenticated分支,避免已登录但不符合域名的用户看到登录注册按钮,仅保留退出登录选项
  • 原逻辑仅判断登录状态,现在通过多条件组合实现了指定域名的访问限制

内容的提问来源于stack exchange,提问作者ShreyankGopal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:04:56