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

2018-02-25 12:13:20 +08:00
 sevenQu

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

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

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

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

7653 次点击
所在节点    Flask
14 条回复
octobersnow
2018-02-25 12:51:52 +08:00
请问您使用蓝图了吗。数据库怎么配置的
codingcrush
2018-02-25 13:01:47 +08:00
flask 套件里的 itsdangerous 包有个 TimedJSONWebSignatureSerializer 类,可以生成带失效时间的 token,至于 token 检验也可以用这个包里的方法搞定
sevenQu
2018-02-25 13:12:35 +08:00
@octobersnow 我跟着 flask 狗书写过一遍博客,这些网上很多教程,不难
octobersnow
2018-02-25 13:13:33 +08:00
@sevenQu 能不能提供个书名称。谢谢
sevenQu
2018-02-25 13:19:16 +08:00
@octobersnow flask web 开发,这本书是是开发一个网页版的 twitter,书上 python 版本 2.7 和 3.3,有些代码已经过时了,需要结合 git 来学习,感觉整体很不错,但是我想开发微信小程序,登录过程感觉是另一个套路,和网页不太一样
male110
2018-02-25 13:25:45 +08:00
定时获取,好像是两个小时,你可以一个半小时获取一次。
male110
2018-02-25 13:26:06 +08:00
py 怎么样?准备学一下。
guiqiqi
2018-02-25 16:25:02 +08:00
建议多看看官方的文档,token 的过期时间是两个小时,在两个小时的上限到达只会有一个缓冲的时间使得新 token 和旧 token 同时可用,保证业务过渡。官方文档中也建议了,单独写一个中控服务器获取 token。我在我的项目中也是这么做的,主服务器启动向中控注册任务,中控负责更新,需要用的时候去取就好了。
Linxing
2018-02-26 02:57:50 +08:00
微信有 api 去验证是否过期
sevenQu
2018-02-26 09:34:08 +08:00
@codingcrush 你好,我找了 itsdangerous 文档,但是没有发现有 TimedJSONWebSignatureSerializer 介绍,文档地址: http://itsdangerous.readthedocs.io/en/latest/,是我找错了吗?
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
2018-02-26 11:18:26 +08:00
@wqxuan 好东西,我查了 itsdangerous,里面的 TimedJSONWebSignatureSerializer 也可以实现,可能没这个插件封装的好,谢谢
ai277014717
2018-02-26 12:56:30 +08:00
一次发两个请求,第一个验证是否过期,成功请求第二个业务逻辑。失败更新 token
sevenQu
2018-02-26 18:24:29 +08:00
@ai277014717 这个思路感觉也可以,我看的好像都是直接把 token 放在请求的 heaeder,如果过期,直接返回重新获取 token,如果验证通过,则可以完成逻辑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/432438

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX