微信公众号每个h5菜单都要获取一次openid吗?

前端是uniapp做的h5页面,
公众号有三个菜单,跳转到不同路由,一个菜单内跳转可以用token。

想请问每次点击或者切换菜单都要重新获取openid吗?不用的话有什么好办法?
用storage的话,就算换了微信应该也能登录所以不行对吧?

另外问一下公众号是不是获取不到手机号了,只有小程序可以?

  1. 从外部手册进入h5, 相当于你打开浏览器访问网页,微信相当于无痕浏览,自然是要重新获取token的;
  2. 用户 openid 不会变化,可以存储在数据库映射;
  3. 考虑到你这边是公众号入口,每次都需要重新获取的,中转授权h5页面;
  4. 能拿到用户 code ,就可以通过 https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=ACCESS_TOKEN 接口获取手机号,h5 授权不就是返回了用户 code 吗;

建议是每次进入前都校验一次用户信息,localstorage 在同浏览器环境下相当于全局变量,如果不做校验会出不同微信号登录展示的依然上一个微信用户的信息,