请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师我是用drf写的,能不能用jwt作为状态保持?

如果用 jwt 做状态保持,只要每次请求接口时 header 带上 Authorization’: 'JWT ’ + jwt ,然后视图里添加 permission_classes = [IsAuthenticated] 就可以保持登录状态。jwt 在微信小程序的使用是否有弊端?
还有app.js里的wx.login()不需要了吗,为什么要换在主页(homepage)实现? 是因为 app 异步 onLanch 比 Page 页面 onLoad 慢加载需要回调很麻烦吗?

正在回答

2回答

wx.login的逻辑放在homepage实现是因为在逻辑设计上是把homepage当做是登录的界面,因此把逻辑迁移至此,而app.js的wx.login只是项目生成的时候遗留的代码,是可以去掉了的。

1 回复 有任何疑惑可以回复我~
  • 提问者 noobone #1
    老师那么,我如果只要app一启动就开始登录,然后获取用户授权要做成弹框+按钮的形式前端应该怎么实现?
    回复 有任何疑惑可以回复我~ 2019-06-25 22:34:33
咚咚呛 2019-06-25 00:06:55

如果使用DRF,配合jwt做相关逻辑是比较常见的,可以实现相关功能,并无明显弊端。但是这里需要认清楚一点,就是jwt和session在使用领域上的一些差异。jwt译做是token(令牌),因而其业务场景更多是应用于授权类的服务,举个例子:你拿到某个服务的令牌,而你拥有了授权,得到一个令牌,因此可以凭借这个令牌去请求某个服务。

而session则主要侧重于状态,session可以动态变更,比如session期限为60分钟,那么在60分钟内,每次请求,都会刷新这个时间,以维护这个登录状态。

关于小程序部分的问题,我先回看一下逻辑再做回复。

先到这里,希望对你有所帮助。

1 回复 有任何疑惑可以回复我~
  • 提问者 noobone #1
    我的理解是:现在有些网站直接拿jwt代替session,可以防范CSRF攻击,而且令牌存在客户器端,session一般使用redis缓存; 用jwt可以节约服务器资源,jwt时限的问题比较笨重,jwt防不住XSS攻击
    回复 有任何疑惑可以回复我~ 2019-06-25 12:27:28
  • 咚咚呛 回复 提问者 noobone #2
    挺不错的理解,对web安全有一定的认识。不过如果你使用django的话,建议也使用session中间件哦,比较两种可以更提升自己。
    回复 有任何疑惑可以回复我~ 2019-06-25 16:32:24
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信