美文网首页
Flask-Login中cookie处理

Flask-Login中cookie处理

作者: 忘了呼吸的那只猫 | 来源:发表于2019-10-08 14:51 被阅读0次

Flask-Login官网介绍:用于管理Flask的user session的,其实就是登录、登出和“记住我”功能。

Flask提供的2种cookie的写入方式

  • 第一种:使用response对象的set_cookie()方法

这种方式cookie都是明文,不安全。在Flask-Login中设置remember_token就是采用这种方式,但是经过加密的,在login_manager.py文件中。

源码中set_cookie

def _set_cookie(self, response):
     ...省略...
        response.set_cookie(cookie_name,#cookie名
                            value=data,#cookie值
                            expires=expires,#规定 cookie 的有效期,单位是秒
                            domain=domain,#规定 cookie 的域名
                            path=path,#规定 cookie 的服务器路径
                            secure=secure,#规定是否通过安全的 HTTPS 连接来传输 cookie
                            httponly=httponly)#通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击
  • 第二种:针对第一种的弊端,Flask提供的session对象,可以方便的对写入的cookie进行签名(Flask必须配置SECRET_KEY)
@app.route('/login/<name>')
def login(name):
    """模拟登录"""
    session['login'] = True
    session['andy'] = 'jang'
    return redirect(url_for('.main', name=name))

这种方式只是在cookie中写入一个名为session的cookie,这个session中可以包含很多信息

针对两种cookie的写入方式,设置过期时间的方式也不同

使用response对象的set_cookie()方法
这种方式在是通过expires参数来设置过期时间,默认是会话结束时session失效,在Flask-Login中是通过在Flask的配置文件settings.py配置失效时间的:

REMEMBER_COOKIE_DURATION = datetime.timedelta(days=1)

session对象的方式:这种方式默认也是会话结束时session失效,可以通过设置session.permanent=True可以将session的有效期延长为PERMANENT_SESSION_LIFETIME指定的时长:

PERMANENT_SESSION_LIFETIME = datetime.timedelta(minutes=10)

相关文章

  • Flask-Login中cookie处理

    Flask-Login官网介绍:用于管理Flask的user session的,其实就是登录、登出和“记住我”功能...

  • nginx中处理cookie

    背景 项目中根据人群做了不同的个性化版面(老年版、正常版),为减少代码侵入性,新的版面采用新建文件的形式进行开发部...

  • requests进阶

    一、requests处理cookies 1、cookie字符串放在headers中 2、把cookie以字典传给c...

  • react(ES6)好用的插件

    Url: 处理浏览器参数 js-cookie: cookie处理 accounting: 对金额进行处理 reac...

  • jmeter

    jmeter关于cookie传递的处理及动态参数传递 项目线程的许多信息需要存储到cookie或是session中...

  • swift3.0 Alamofire cookie 持久化

    Alamofire 会自动处理 cookie 并在之后的请求中携带 cookie。 但当应用重启后就不会携带 co...

  • IOS中 cookie 的处理

    一直以为ios的http请求不会自动处理请求中的cookie,也不知道Session是怎么处理的!! 最近的项目中...

  • Flask-Login 官方文档学习过程记录

    简介 Flask-Login是Flask中用于用户session管理(用户状态管理)的一个模块,它处理用户登录、注...

  • flask-login学习

    flask-login 地运行方式 (1)访问htp:/po/0tatw0ogi.o处理这个URL的函数返回登录表...

  • 处理cookie

    保存到变量和保存到文件两种方式 请参考:http://python.jobbole.com/81344/

网友评论

      本文标题:Flask-Login中cookie处理

      本文链接:https://www.haomeiwen.com/subject/lchbpctx.html