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

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

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

    我自己查了一些资料,还是没有很好地头绪
    这是我找到的感觉不错的教程,但是看完还是有点蒙,很无奈 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
        6
    male110  
       2018-02-25 13:25:45 +08:00
    定时获取,好像是两个小时,你可以一个半小时获取一次。
    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   ·   实用小工具   ·   5338 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:10 · PVG 15:10 · LAX 23:10 · JFK 02:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.