flask 最为后端开发微信小程序,求登录逻辑教程 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sevenQu
V2EX    Flask

flask 最为后端开发微信小程序,求登录逻辑教程

  •  
  •   sevenQu 2018-02-25 12:13:20 +08:00 8001 次点击
    这是一个创建于 2852 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我自己查了一些资料,还是没有很好地头绪
    这是我找到的感觉不错的教程,但是看完还是有点蒙,很无奈 https://www.cnblogs.com/vovlie/p/4182814.html

    我一直有个疑惑,token 是有过期的时间的,过期之后如果再次获取,怎么知道过期了,希望可以解答一下

    如果有一个类似的教程可以手把手教学最好

    感觉我基础有点差,如果有什么建议我学或读的,欢迎说出来

    14 条回复    2018-02-26 18:24:29 +08:00
    octobersnow
        1
    octobersnow  
       2018-02-25 12:51:52 +08:00 via iPhone
    请问您使用蓝图了吗。数据库怎么配置的
    codingcrush
        2
    codingcrush  
       2018-02-25 13:01:47 +08:00
    flask 套件里的 itsdangerous 包有个 TimedJSONWebSignatureSerializer 类,可以生成带失效时间的 token,至于 token 检验也可以用这个包里的方法搞定
    sevenQu
        3
    sevenQu  
    OP
       2018-02-25 13:12:35 +08:00
    @octobersnow 我跟着 flask 狗书写过一遍博客,这些网上很多教程,不难
    octobersnow
        4
    octobersnow  
       2018-02-25 13:13:33 +08:00 via iPhone
    @sevenQu 能不能提供个书名称。谢谢
    sevenQu
        5
    sevenQu  
    OP
       2018-02-25 13:19:16 +08:00
    @octobersnow flask web 开发,这本书是是开发一个网页版的 twitter,书上 python 版本 2.7 和 3.3,有些代码已经过时了,需要结合 git 来学习,感觉整体很不错,但是我想开发微信小程序,登录过程感觉是另一个套路,和网页不太一样
    male110
        7
    male110  
       2018-02-25 13:26:06 +08:00
    py 怎么样?准备学一下。
    guiqiqi
        8
    guiqiqi  
       2018-02-25 16:25:02 +08:00 via iPhone
    建议多看看官方的文档,token 的过期时间是两个小时,在两个小时的上限到达只会有一个缓冲的时间使得新 token 和旧 token 同时可用,保证业务过渡。官方文档中也建议了,单独写一个中控服务器获取 token。我在我的项目中也是这么做的,主服务器启动向中控注册任务,中控负责更新,需要用的时候去取就好了。
    Linxing
        9
    Linxing  
       2018-02-26 02:57:50 +08:00 via iPhone
    微信有 api 去验证是否过期
    sevenQu
        10
    sevenQu  
    OP
       2018-02-26 09:34:08 +08:00
    @codingcrush 你好,我找了 itsdangerous 文档,但是没有发现有 TimedJSONWebSignatureSerializer 介绍,文档地址: http://itsdangerous.readthedocs.io/en/latest/,是我找错了吗?
    wqxuan
        11
    wqxuan  
       2018-02-26 10:08:55 +08:00
    JWT 验证,目前用的这个插件,flask_jwt_extended,http://flask-jwt-extended.readthedocs.io/en/latest/basic_usage.html, 配置 token 有效期,jwt_cOnfig= {
    'JWT_HEADER_TYPE': 'JWT',
    'JWT_ACCESS_TOKEN_EXPIRES': datetime.timedelta(minutes=30) # token 30 分钟过期,具体过期时间根据需要定
    }
    请求的时候,在 headers 中带上 Authorization: JWT token
    如果 token 过期,会返回 {
    "msg": "Token has expired"
    }
    sevenQu
        12
    sevenQu  
    OP
       2018-02-26 11:18:26 +08:00
    @wqxuan 好东西,我查了 itsdangerous,里面的 TimedJSONWebSignatureSerializer 也可以实现,可能没这个插件封装的好,谢谢
    ai277014717
        13
    ai277014717  
       2018-02-26 12:56:30 +08:00
    一次发两个请求,第一个验证是否过期,成功请求第二个业务逻辑。失败更新 token
    sevenQu
        14
    sevenQu  
    OP
       2018-02-26 18:24:29 +08:00
    @ai277014717 这个思路感觉也可以,我看的好像都是直接把 token 放在请求的 heaeder,如果过期,直接返回重新获取 token,如果验证通过,则可以完成逻辑
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1018 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:48 PVG 02:48 LAX 10:48 JFK 13:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86