问题描述
在使用微信公众号中遇到个持久化openid的问题,目前项目中采用服务器端获取openid后存在session中然后返回到前端,在angular有个公用的base.js的文件异步获取openid并写入到localStorage中以便其它页面调用。
现在的问题是第一次进入页面获取到openid后可以正常在页面中使用,页面间跳转也可以获取到,但一旦从后台关闭微信再进入点击公众号菜单又会去获取一次openid,然后又重定向到redirect_url中定义的页面,导致用户无法正常的进入相应的菜单,不知道是angular这边获取openid的方式不对还是服务器端那边的做法不对,望指教!
问题解答
回答1:这个问题描述的不太清楚。如果要获取openid,必须通过微信的网页授权,先拿到授权code,然后拿openid。所以openid尽量缓存下来。
回答2:按理说程序是运行在微信提供的浏览器中的,微信推出了,程序肯定也关闭了。在此进入的时候,又一次去服务端获取,一切都是新的了。其实可以把openId保存在service中,没必要保存在localstorage中。
没明白你说的什么意思,你再整理下。