当前位置:首页 > 经验 >

微信cookie过期怎么弄(如何清除微信的cookie)

来源:原点资讯(www.yd166.com)时间:2022-11-07 01:27:20作者:YD166手机阅读>>

技术要点:

1、如何获取业务系统中用户身份标识

OPENID是微信公众号中用户的唯一标识,通过OPENID与业务系统中USRID建立一对一的对应关系,这样获取到了OPENID也就能知道所对应的USRID,从而获取对应权限的业务数据。

OPENID获取地址:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APPSECRET&code=CODE&grant_type=authorization_code

2、OPENID如何在页面建传递

由于请求获取OPENID是一个耗时的操作,为了加速页面响应速度,提升用户体验,不可能在每个页面中都请求一次。那么怎么保存传递这个OPENID呢,一种方法是用户首次访问时,调用微信接口获取OPENID,然后将OPENID写入服务器端的Cookies,通过cookie进行OPENID信息传递。下面讲解这种方式具体实施:

(1)添加拦截器,拦截需要获取OPENID进行身份识别的Controller,判断请求的cookies信息中是否含有openid,如果有直接放行,否则转向获取OPENID的url。

/* * <P>微信相关请求拦截器</P> * * @version 1.0 * @author wangpf * @date 2018年5月2日 下午7:07:39 */ public class oauth2Interceptor extends HandlerInterceptorAdapter { /** * 日志对象 */ protected Logger logger = LoggerFactory.getLogger(getClass()); // 从配置文件中读取域名 public static String domainUrl = Global.getConfig("wechat_domain_url"); public static String domain = "http://" Global.getConfig("wechat_domain"); public boolean preHandle(HttpServletrequest request, HttpServletResponse response, Object handler) throws Exception { String uri = request.getRequestURI(); logger.debug("OAuth2Interceptor:" uri); //兼容旧菜单url,直接放行 String code = request.getParameter("code"); if(StringUtils.isNotEmpty(code)) { return true; } //判断cookie中是否有openid,没有则转向获取openid的url Cookie[] cookies = request.getCookies(); String openid = null; // 判断cookie中是否存在openid 若存在则直接跳过,不存在则获取一次 if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals("openid")) { openid = cookie.getValue(); } } } if (StringUtils.isEmpty(openid)) { response.sendRedirect(domainUrl "/f/wechat/oauth/oauth2Api?resultUrl=" domain uri); return false; } else { return true; } } public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }

该Controller为获取微信用户OPENID的核心Controller,首次访问时调用微信接口获取OPENID,然后设置cookie到客户端(Cookie userCookie=new Cookie("openid",openid))。设置cookie过期时间为负数,表明当用户关闭浏览器的时候自动清空cookie。之后的用户请求可以直接从cookie中获取openid。

/** * <P>获取/保存OPENID相关Controller</P> * * @version 1.0 * @author wangpf * @date 2018年5月2日 下午7:20:38 */ @Controller @RequestMapping(value = "${frontPath}/wechat/oauth") public class OAuth2Controller extends BaseController { //从配置文件获取主域名 public static String domainUrl = Global.getConfig("wechat_domain_url"); /** * 拼装并转向获取OPENID的url * 示例: * https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx74dfe3afa0ebafe3 * &redirect_uri=http://www.xxxx.com/evcg/f/wechat/qrcode?response_type=code * &scope=snsapi_base&state=1#wechat_redirect * * @param request * @param resultUrl * @return */ @RequestMapping(value ="oauth2Api") public String oauth2API(HttpServletRequest request, @RequestParam String resultUrl) { StringBuffer redirectUrl = new StringBuffer(); if (resultUrl != null) { String backUrl = domainUrl "/f/wechat/oauth/oauth2MeUrl?oauth2url=" resultUrl; String appid = Global.getConfig("wechat_appid"); //组装获取OPENID的url redirectUrl.append("https://open.weixin.qq.com/connect/oauth2/authorize?"); redirectUrl.append("appid=").append(appid); redirectUrl.append("&redirect_uri=").append(backUrl); redirectUrl.append("&response_type=code"); redirectUrl.append("&scope=snsapi_base&state=1#wechat_redirect"); } //转向获取OPENID的url return "redirect:" redirectUrl.toString(); } /** * 获取微信用户标识OPENID * @param request * @param response * @param code * @param oauth2url * @return */ @RequestMapping(value = "oauth2MeUrl") public String oauth2MeUrl(HttpServletRequest request,HttpServletResponse response, @RequestParam String code, @RequestParam String oauth2url) { try { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); Httpsession session = request.getSession(); session.setAttribute("code",code); //通过code获取微信用户openid存储在cookie中的信息 String openid = WeixinUtil.getOpenId(code); Cookie userCookie=new Cookie("openid",openid); userCookie.setMaxAge(-1); userCookie.setPath("/"); response.addCookie(userCookie); } catch (Exception e) { e.printStackTrace(); } //转向原始请求url return "redirect:" oauth2url; } }

栏目热文

怎样清除微信的cookie(微信怎么获取cookie)

怎样清除微信的cookie(微信怎么获取cookie)

春节后复工,有很多朋友或许在想着换工作,于是在离职前总要做些准备吧? 如果你的工作会涉及到很多数据,或者你在办公的电脑上...

2022-11-07 00:49:31查看全文 >>

虾酱炒鸡蛋的做法(虾酱炒鸡蛋的做法最正宗的做法)

虾酱炒鸡蛋的做法(虾酱炒鸡蛋的做法最正宗的做法)

作者:奕空用料鸡蛋 3虾酱 10g葱 多油 适量做法步骤1、虾酱鸡蛋活在一起2、多一点,切小3、葱炒黄放虾酱4、放入虾酱...

2022-11-07 01:11:45查看全文 >>

虾酱制作(山东哪的虾酱最正宗)

虾酱制作(山东哪的虾酱最正宗)

大家好,这里是【刘一手美食】,关注老刘,每天分享一道好吃又实用的家常菜1、虾酱是中国沿海地区、中国香港地区以及东南亚地区...

2022-11-07 01:04:47查看全文 >>

虾酱的制作方法(韩国虾酱的制作方法)

虾酱的制作方法(韩国虾酱的制作方法)

虾酱是一种沿海地区常用的调味料,如果我们知道虾酱怎么做,就能够自己买一些虾回去做了。虾酱怎么做虾酱其实可以做出很多种口味...

2022-11-07 01:16:39查看全文 >>

炒虾酱正宗做法(正宗天津炒虾酱做法)

炒虾酱正宗做法(正宗天津炒虾酱做法)

如果您喜欢我的美食文章,请点击 “关注”,会有更精彩的美食文章奉献给您!虾酱,让人又爱又恨在北方地区,如果说一种食材,让...

2022-11-07 00:54:48查看全文 >>

微信怎么删除cookie(微信浏览器如何删除cookie)

微信怎么删除cookie(微信浏览器如何删除cookie)

近日,浙江绍兴越城区警方成功侦破史上最大规模的数据窃取案,阻止30亿条公民信息泄漏。警方查明,北京一个以新媒体营销为主业...

2022-11-07 01:11:34查看全文 >>

清除微信cookie(微信cookie查询)

清除微信cookie(微信cookie查询)

手机内部不足,用起来简直太难受了。音乐不敢多下载几首,玩个大型游戏被提示存储空间不足……对于那些16G存储空间的手机用户...

2022-11-07 01:01:21查看全文 >>

微信打开的网页怎么清除cookie(微信清除缓存cookie)

微信打开的网页怎么清除cookie(微信清除缓存cookie)

微信开放平台:微信扫码登录功能官方文档:https://developers.weixin.qq.com/doc/opl...

2022-11-07 01:24:28查看全文 >>

微信没有cookie怎么办(清除微信cookie的方法)

微信没有cookie怎么办(清除微信cookie的方法)

第277期 编号:HDFYZYJJ2017277单位|恒都律师事务所 综合法律及争议解决事业部 作者|信息保护和网络安全...

2022-11-07 01:32:33查看全文 >>

微信浏览器cookie怎么清除(微信清除cookie怎么打开)

微信浏览器cookie怎么清除(微信清除cookie怎么打开)

如今这个时代,互联网已经和我们紧密相连,让我们的生活和工作更加便捷的同时,也让我们的隐私在不知不觉中被人“偷窥”。近日,...

2022-11-07 01:21:36查看全文 >>

文档排行