java、JavaScript获取微信用户信息登录优化方案
1.获取微信用户信息要调用微信的好几个接口,再加上自己系统的接口就会变的很慢,影响用户体验,之前走过的弯路我就不赘述了,直接说新的方案。
2.第一步都是向微信发起获取用户code请求:
请求接口:https://open.weixin.qq.com/connect/oauth2/authorize
参数:
3.前端发起或后端都可以发起,这里就说前端发起了,state参数是当前页面地址,如果页面地址长度太长可以不要携带参数,state的参数主要的后台处理完成后需要重定向的地址。
4.当这些都处理完成后,微信会调用第二步蚕参数指定的redirect_uri接口(之前我们配置的微信授权地址是前端地址,走了弯路),会携带之前的id=123参数,state参数,还有主要的code参数。
5.第四步中第二段代码中的APPID和AppSecret要替换成自己公众号的APPID和AppSecret,之所以先获取微信用户的openid信息,查询用户是否存在系统中,不存在的就要调用微信获取用户信息的接口,存在就不在调用,这样可以减少大约300-450毫秒,这个是我在本地测试获得的时间。
6.第四步包含了获取用户信息,注册,登录一起完成了,之前我们都是分开的由前端分次调用,比较慢,用户体验也不好。最后重定向到之前获取微信用户code时指定的state界面,并携带好参数。
7.未绑定开发者的微信服务号是没有unionid的,所以需要注意一下。
8.有什么不对的地方或者还有更多优化方案,欢迎讨论!

浙公网安备 33010602011771号