首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个页面视图都需要新的登录名

每个页面视图都需要新的登录名
EN

Stack Overflow用户
提问于 2016-04-27 04:38:16
回答 2查看 83关注 0票数 1

我目前使用的代码在这里:

http://flask.pocoo.org/snippets/8/

并且我相应地装饰我的函数,以便在请求特定的管理页面时让管理员进行身份验证。然而,我注意到,它以某种方式跟踪会话,并且在成功通过一次身份验证后不再需要身份验证,而不是要求管理员在每次管理页面都保持身份验证。有没有办法强制flask在每次管理员请求给定装饰的管理页面时重新进行身份验证?

EN

回答 2

Stack Overflow用户

发布于 2016-04-27 05:54:09

使用包含的代码片段,没有什么好方法可以强制用户在每次请求给定页面时都登录。

这是因为该代码片段正在使用HTTP Basic Auth,并且没有好的方法来要求浏览器停止发送该标头。

票数 0
EN

Stack Overflow用户

发布于 2016-04-27 22:18:58

你正在寻找的东西可以用一个定制的装饰器来完成。您可以使用下面的示例。请注意,您的情况将有所不同,但您可以将此作为指导。

代码语言:javascript
复制
from web import app, has_role

@app.route("/admin/my_page")
@login_required
@has_role(role="admin")
def admin_my_page():
    //do stuff

然后,您可以在项目初始化或包含文件中添加以下内容:

代码语言:javascript
复制
def has_role(role=None):
    def _initial_decorator(view_func):
        def _decorator(*args, **kwargs):
            response = view_func(*args, **kwargs)
            if g.user.user_level != role:
                from flask import redirect, url_for

                return redirect(url_for("no_access"))
            return response

        return wraps(view_func)(_decorator)

    return _initial_decorator

这至少可以让您了解如何创建自定义装饰器,然后检查角色权限。您可以将其扩展到您需要的任何位置。您可以放置引擎逻辑或其他检查以适合您的项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36875256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档