网页授权获取API(SnsAccessTokenApi)遇到不同用户获取的access_token一样的问题
想实现一个这样的功能:微信用户点击菜单、网页链接等获取该用户的openid,然后通过这个openid进行一些操作,比如登录、积分、调取用户信息等等。
参考微信开发文档:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
第一步获取code,在回调方法中使用SnsAccessTokenApi.getAccessToken(code),发现一段时间(缓存时间吧)任何微信用户获取的都是一样的,看了下这个函数,发现依据appId设置了一个Map对象,并没有与具体用户有关系呀,这里就不明白了,为什么要这么处理?这样的话每个用户在一段时间内都会获取某一个用户的信息了啊!
是我使用的方法不对吗?附上代码和效果,急切求救啊!
/** * 网页授权 */ public void access(){ String code = getPara("code"); int action = getParaToInt("action"); AccessToken accessToken = SnsAccessTokenApi.getAccessToken(code); String content = accessToken.getJson(); Gson gson = new Gson(); JsonParser parser = new JsonParser(); JsonObject jsonObject = parser.parse(content).getAsJsonObject(); JsonElement el = jsonObject.get("openid"); String openId = gson.fromJson(el, String.class); switch(action){ case 1://前往个人中心页面 redirect("/account/"+openId); break; case 2://前往意见反馈页面 redirect("/opinion/page/"+openId); break; } }
B微信号:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论