Rob*_*Rob 6 python flask flask-login flask-user
我在这里找到了一个类似的问题,但答案似乎对我不起作用。
我使用 Flask 用户(我相信它扩展了 Flask 登录)并且在大多数情况下它工作得很好。我已经为登录和注册构建了我自己的全新模板,而不是使用他们提供的模板。按照文档,我将这些模板放在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"
Run Code Online (Sandbox Code Playgroud)
UserManager 定义在底部models.py:
user_manager = UserManager(app, db, User)
Run Code Online (Sandbox Code Playgroud)
我实施了@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模板。
| 归档时间: |
|
| 查看次数: |
626 次 |
| 最近记录: |