python - 覆盖 Flask-User/Flask-Login 的默认模板
问题描述
我在这里找到了类似的问题,但答案似乎对我不起作用。
我使用 Flask User(我相信它扩展了 Flask Login)并且在大多数情况下它工作得很好。我已经建立了自己全新的登录和注册模板,而不是使用他们提供的模板。在文档之后,我将这些模板放在了templates/flask_user/login.html
,templates/flask_user/register.html
依此类推。
我还在我的配置文件中设置USER_UNAUTHENTICATED_ENDPOINT = "login"
了我的登录路径的名称。USER_UNAUTHORIZED_ENDPOINT = "login"
login
问题是,如果我退出并尝试直接访问需要用户登录的页面,我将被发送到http://localhost:5000/user/sign-in
并显示Flask-Login
登录页面。这有两个问题:1) 这不是正确的登录路径,以及 2) 这不是正确的登录模板。
我将不胜感激任何人可以为此建议的任何帮助,请。
编辑:
从中__init__.py
初始化应用程序和 LoginManager 的代码:
app = Flask(__name__)
@app.context_processor
def inject_production_status():
return dict(production=True)
# Initialise flask_login
login = LoginManager(app)
login.login_view = 'login'
login.refresh_view = "login"
login.needs_refresh_message = "Please sign in again to access this page"
UserManager 在底部定义models.py
:
user_manager = UserManager(app, db, User)
解决方案
我实施了@JBLaf 的建议,但这并没有解决问题。我意识到我被呈现的默认登录页面实际上不是flask-login
模板login.html
,而是它的login_auth0.html
模板。这是一个我没有在我自己的flask_user
文件夹中替换的模板,因为我认为没有必要。
解决此问题的两种方法:
- 设置
USER_ENABLE_AUTH0 = False
。这使它使用login.html
模板,这是我自己的自定义模板。但是,这给我带来了问题,因为我确实允许 SSO 登录。所以更好的解决方案是: login-auth0.html
在我的templates/flask_user
文件夹中创建一个文件,仅包含{% include 'flask_user/login.html' %}
.
现在 Flask-User 将尝试重定向到 auth0 模板,该模板将改为呈现我的login.html
模板。
推荐阅读
- javascript - 将数据从js发送到rails
- python - 在python中分别为每个类从时间列创建10分钟的时间段
- log4j2 - 在 log4j2 中为自定义 Header 扩展 PatternLayout
- javascript - 在 JavaScript 中使用 JSONata?
- php - 如何将 Wamp Server 中的本地 PHP 文件和数据库提供给 WAN 即来自其他网络的人?
- asp.net - 无法折叠 asp.net ajax Telerik gridtableview
- git - 我在通过 bitbucket 管道访问 ftp 服务器时遇到问题
- javascript - Ember js #LinkTo 标记及其行为
- html - 如何将 div 绝对定位到其父级?
- java - 启动payara服务器时如何解决以下异常