修改用户信息后刷新缓存问题

新项目的小程序注册登录逻辑是调用微信接口获取openId,如果数据库中存在这个openId则说明是登录,如果不存在openId则说明该用户需要注册。这是前端会给用户一个弹窗要一个授权,用户授权之后前端给后端传一个code。后端拿着这个code调用微信的接口获取到用户的手机号。获取到了用户的手机号之后就吧手机号和openId一同添加到库里。

用户登录进小程序之后可以修改昵称和头像,前端直接调用微信的接口就可以直接获取到当前微信的昵称和头像,前端只需要调用接口就好了。这里前端忘记写获取微信昵称了,先用默认值代替。

走到这里就遇到问题了,后端接收到前端穿的参去数据库中修改信息,信息确实也修改了。但是前端调用gteinfo()接口就是修改之前的数据。但是如果退出重新登录,换个新的token显示的内容就是修改之后的内容。如果用户每次修改之后都需要重新登录明显是不现实的。

来分析一下问题,数据更新后,调用的是gteinfo()接口。gteinfo()调用的时候不需要传参,只需要吧用户的token传到请求头里就行。两次数据的差异明显是差异再token中。getinfo()中返回user数据是在缓存中取的。

到这里我的第一反应就是数据存在redis中了。然后我就去百度查redis更新缓存。但是百度的大部分都是分析若依源码的东西帖子,看了看并没有更新缓存的操作。

后来我问朋友,朋友帮我分析了一下。用户信息并没有存储到redis中,而是存储到了安全框架中,每次修改用户信息的时候调用一下刷新操作就好了。

以上只记录debug的过程

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ming__GoGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值