这个问题是在太奇葩了,前端用OAuth2.0 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
后端在拿到 code 后,用 https://api.weixin.qq.com/sns/oauth2/access_token?appid={WX_APPID}&secret={WX_SECRET}&code={code}&grant_type=authorization_code 来获得 openid 和 unionId
奇葩的点在于,我未关注服务号,直接在微信环境打开页面,什么都不操作,就能获得一个 code(这时候页面底部是有授权引导的),并且这个 code 在后端就能换取 openid 和 unionId。然后我接下来点一下授权,又获得一个 code,在后端又换取了一个新的 openid 和 unionId。
因为我绑定了开放平台,所以我知道哪个 unionId 是正确的,授权以后的 unionId 是正确的,不知道未授权情况下的 code/openid/unionId是用来干嘛的,对我来说就是脏数据。
是可以通过is_snapshotuser 来判断。就是所有文档都没有说明 is_snapshotuser 是什么,也没有你说的“临时身份”的说明。其实这个并不是临时身份,就是在未授权未关注的情况下的身份,而且在snsapi_userinfo 模式下,什么都不操作就获得了这个“临时身份”