网页授权获取API(SnsAccessTokenApi)遇到不同用户获取的access_token一样的问题

发布于 2021-11-29 11:48:39 字数 1605 浏览 872 评论 0

想实现一个这样的功能:微信用户点击菜单、网页链接等获取该用户的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;
		}
	}



A微信号:


B微信号:


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文