首页 > 其他分享 >flask-login 初识

flask-login 初识

时间:2023-05-03 23:03:36浏览次数:44  
标签:return flask app manager 初识 login config

一、在简单应用中的配置示例

1.在初始化 application 时注册一个 LoginManager 实例对象

from flask_login import LoginManager

login_manager = LoginManager()

def create_app(config_type='default'):
    config_class = config[config_type]
    app = Flask(__name__)
    app.config.from_object(config_class)

    login_manager.init_app(app)

    return app

 

2.使用 HTTP 头或者一个作为查询参数的 api 密钥。这种情况下,你应该使用 request_loader 回调

from application import login_manager


@login_manager.request_loader
def load_user_from_token(request):
    # 从token中验证身份的示例函数
    token = request.headers.get('Authorization')
    if not token:
        return None
    else:
        try:
            data = JwtTool.verify_jwt(token)
        except InvalidSignatureError:
            return None
    user = User.query.filter_by(id=data['userid']).first()
    if user:
        return user
    else:
        return None

 

3.在需要验证身份的视图中使用装饰器修饰

from flask_login import login_required


class Example(Resource):
    method_decorators = {'post': [login_required]}
    def get(self):
        pass
    
    def post(self):
        pass

 

4.重定向。默认情况下,当未登录的用户尝试访问一个 login_required 装饰的视图,Flask-Login 会闪现一条消息并且重定向到登录视图。(如果未设置登录视图,它将会以 401 错误退出。)

from application import login_manager


login_manager.login_view = "users.login"
login_manager.login_message = u"Bonvolu ensaluti por uzi tio pa臐o."

 

 

参考:

1.http://www.pythondoc.com/flask-login/index.html#flask.ext.login.LoginManager.user_loader

标签:return,flask,app,manager,初识,login,config
From: https://www.cnblogs.com/100-rzsyztd/p/17369841.html

相关文章

  • Flask中使用Celery教程
    不管是使用什么编程语言,使用什么框架。在服务器上执行耗时操作,比如网络请求、视频转码、图片处理等。如果想实现快速响应客户端的需求,则必须使用任务队列。任务队列是一个单独的程序,和网站没有直接关系,任务队列提供了接口,能在网站中通过代码操作任务队列,比如:添加任务,查看任务结......
  • Python flask-sqlalchemy
    安装pip3installmysql-connector-pythonpipinstallflask_sqlalchemy /setting.pyclassConfigs:#数据库信息MYSQL_USER=''MYSQL_PWD=''MYSQL_HOST=''MYSQL_PORT=''DBNAME=''......
  • 初识数组
    数组:一组相同类型的元素的集合 arr是数组名字,在数组里面存放10个数,如大括号里的没有设定的数多时,剩下的数都默认为0数组使用下标来访问的在数组开辟了一个空间,里面存放了这10个元素,这个数组的名字叫arr,而每个元素都有一个下标,但语法规定第一个元素下标都是为0,当你想访问每个......
  • SpringSecurity过滤器之DefaultLoginPageGeneratingFilter
    DefaultLoginPageGeneratingFilter用于生成默认登录页。privatevoiddoFilter(HttpServletRequestrequest,HttpServletResponseresponse,FilterChainchain) throwsIOException,ServletException{ booleanloginError=isErrorPage(request); booleanlogoutSuccess......
  • 初识函数
       先设置函数,创建两个相同的数据类型,然后在创建一个变量,让这个变量求想要的算法,最后返回这个变量设置两个变量,将a放入到函数add中的intx中,b放入inty里面,在将函数算好的值放回sum里面......
  • 初识循环语句
     while循环 首先创建一个想要循环的变量设置变量循环的值当变量的值小于设定的值时,将会一直循环,(后面添加变量名称,就可以显示循环次数)每循环一次就往上加 直至循环次数达到后将跳出循环......
  • React Navive初识
    title:11-ReactNavive初识publish:true搭建开发环境官方文档:https://reactnative.cn/docs/getting-started.html安装Node、homebrew、Watchman安装homebrew:安装watchman:brewinstallwatchmanWatchman则是由Facebook提供的监视文件系统变更的工具。安装此工具......
  • PMP-15-初识项目管理的过程
    一、过程是为了完成一系列预先指定的产品服务或成果而需要执行的相互联系的行动和活动。二、每个过程都有输入和输出,并且过程贯穿了项目管理的全生命周期。三、项目管理中有5大过程组,分别是启动、规划、执行、监控、收尾,这5大过程组构成了项目管理的主要工作。四、在项目管理过......
  • 初识类
    实例封装一个“Point类”来实现平面上的点的操作。1、声明classclass_name{[private:]成员;public:成员;protected:成员;};<1>class_name:类名,一般首字母大写<2>private,public,protected:访问权限<3>成员:数据,函数<4>声明时不会为类分......
  • Django&Tornado&Flask比较
    1.DjangoDjango概述Django太重,除了web框架,自带ORM和模板引擎,灵活和自由度不够高。Django能开发小应用,但总会有“杀鸡焉用牛刀”的感觉。Django的自带ORM非常优秀,综合评价略高于SQLAlchemyDjango自带的模板引擎简单好用,但其强大程度和综合评价略低于Jinja。Django自带ORM也使D......