V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Jolly23
V2EX  ›  Flask

关于 python-flask 的上下文功能 在微信(浏览器)中保存 用户会话 的问题

  •  
  •   Jolly23 · 2016-06-25 14:18:08 +08:00 · 3030 次点击
    这是一个创建于 2855 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人 flask 内容了解不深,工程马上完工只差最后一步。

    开始设计的我项目的微信服务公众号上,有个个人中心页面,这个页面上有几个按钮分别进入一些基本的网页,但都和当前用户相关。

    最开始设计的访问每个页面,进入页面前都需要从微信服务器请求用户识别码( openid , 28 个字符, string ),但是在实际使用过程中发现此方法效率很低(用户数万,请求很多),在每跳转一个页面都去微信 get 识别码,速度也大大减慢。

    现在设想:微信就是个浏览器,当用户点击链接,用 flask 的上下文技术,先判断此用户是否被识别,没识别的话,就从微信服务器请求此用户识别码,并将此识别码保存,这样当用户再跳转其他页面时,省去了重复请求 openid 的过程。

    请问我说的这个,要用那个模块来实现?具体怎么做下,希望有人能指导下,谢谢大家

    8 条回复    2016-06-26 01:16:39 +08:00
    qiayue
        1
    qiayue  
       2016-06-25 14:20:55 +08:00 via Android
    session
    gulu
        2
    gulu  
       2016-06-25 14:34:49 +08:00 via Android
    这不就是相当于 登录 吗?
    似乎可以用 session , 也就是 cookie
    practicer
        3
    practicer  
       2016-06-25 19:04:54 +08:00
    我有一个和提主类似的项目,但用的是 google oauth2 做 login ,
    如 @gulu @qiayue 所说,上下文用 g 和 session 。
    flask 已经做好了针对 oauth 和 openid 的封装,详细操作看教程, flask 真的很好用哦:
    openid : https://pythonhosted.org/Flask-OpenID/
    oauth2.0 : https://pythonhosted.org/Flask-OAuth/
    BiggerLonger
        4
    BiggerLonger  
       2016-06-25 23:54:39 +08:00
    直接 redis 不就完了吗?
    Jolly23
        5
    Jolly23  
    OP
       2016-06-26 01:15:31 +08:00 via iPhone
    @practicer 谢谢你 经过思考问题已经解决并完美实现了
    Jolly23
        6
    Jolly23  
    OP
       2016-06-26 01:16:09 +08:00 via iPhone
    用了 session
    Jolly23
        7
    Jolly23  
    OP
       2016-06-26 01:16:27 +08:00 via iPhone
    @gulu 谢谢,问题解决了
    Jolly23
        8
    Jolly23  
    OP
       2016-06-26 01:16:39 +08:00 via iPhone
    @qiayue 谢谢 问题解决了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1537 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:59 · PVG 00:59 · LAX 09:59 · JFK 12:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.