微信开发-网页授权获取用户信息
2016-12-12 11:45
423 查看
是不是大家经常能在微信公众号上访问某家应用的时候弹出这样一个页面
![](http://img.blog.csdn.net/20161212104049136?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjE3ODgxOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
,当你点击确定之后,你进入这家应用的时候会惊奇的发现,你已经登录好了,并且你的微信信息都被他采集到了。
这是怎么做的呢,首先我们得了解几个微信开发接口。
1,授权接口
2,获取access_token
3,获取用户信息
注意:调用此接口的前提,授权接口的scope必须为snsapi_userinfo,如果你不需要获取用户的相关信息,只需要获取用的openid,那本接口就不用调用到。
上述三个接口为微信平台提供的api,具体可以参考官方文档。
下面是我写的一个简单的例子:
OauthGetCode.java
OauthGetCode.jsp
OAuthLogin.java
特别注意:测试授权获取用户信息必须要有公众号且开通了相应接口功能,
此处需要修改成自己访问的域名地址,否则会授权不通过的哦。
,当你点击确定之后,你进入这家应用的时候会惊奇的发现,你已经登录好了,并且你的微信信息都被他采集到了。
这是怎么做的呢,首先我们得了解几个微信开发接口。
1,授权接口
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
2,获取access_token
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
3,获取用户信息
注意:调用此接口的前提,授权接口的scope必须为snsapi_userinfo,如果你不需要获取用户的相关信息,只需要获取用的openid,那本接口就不用调用到。
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
上述三个接口为微信平台提供的api,具体可以参考官方文档。
下面是我写的一个简单的例子:
OauthGetCode.java
@RequestMapping(value = "/doOAuthLogin") public String doOAuth(HttpServletRequest request, HttpServletResponse response ) throws IOException { String appid = ConfigUtils.APPID; String redirectUrl = ConfigUrlUtils.YUMING + "exhibitFront/OAuthLogin"; String state = "0"; request.setAttribute("appid", appid); request.setAttribute("redirect_url", redirectUrl); request.setAttribute("outTradeNum", state); return "utils/OAuthGetCode"; }
OauthGetCode.jsp
<%@ page language="java" pageEncoding="utf-8"%> <html> <head> <meta name="viewport" content="width=device-width,user-scalable=0"> </head> <body> <script language="javascript" type="text/javascript"> window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid }&redirect_uri=${redirect_url }&response_type=code&scope=snsapi_userinfo&state=${outTradeNum }#wechat_redirect"; </script> </body> </html>
OAuthLogin.java
@RequestMapping(value = "/OAuthLogin") public String oauthLogin(HttpSession session, HttpServletRequest request, @RequestParam(value = "code") String code, Model model) { // 获取用户的openid String returnJSON = HttpTool.getToken(ConfigUtils.APPID, ConfigUtils.APPSECRET, "authorization_code", code); JSONObject obj = JSONObject.fromObject(returnJSON); System.out.println(obj);//获取到的用户信息 String openid = obj.get("openid").toString(); //例:获取用户信息,详细可以参考下面进行获取 /* * 可获取的用户信息: openid 用户的唯一标识 nickname 用户昵称 sex 用户的性别,值为1时是男性,值为2时是女性,值为0时是未知 province 用户个人资料填写的省份 city 普通用户个人资料填写的城市 country 国家,如中国为CN headimgurl 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。 privilege 用户特权信息,json 数组,如微信沃卡用户为(chinaunicom) unionid 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:获取用户个人信息(UnionID机制) */ return "redirect:/exhibitFront/index"; }
特别注意:测试授权获取用户信息必须要有公众号且开通了相应接口功能,
此处需要修改成自己访问的域名地址,否则会授权不通过的哦。
相关文章推荐
- 微信开发笔记——微信网页登录授权,获取用户信息
- 夺命雷公狗---微信开发51----网页授权(oauth2.0)获取用户基本信息接口(1)
- 微信开发--网页授权获取用户基本信息
- 微信网页开发授权(获取用户信息) 微信公众平台开发教程(4)
- 夺命雷公狗---微信开发53----网页授权(oauth2.0)获取用户基本信息接口(3)实现世界留言版
- 微信开发——网页授权获取用户基本信息
- 微信开发之网页授权获取用户信息
- 微信开发之获取OAuth2.0网页授权认证和获取用户信息进行关联
- 微信接口开发之高级篇系列【网页授权获取用户基本信息】
- 微信开发之网页授权获取用户信息(二)
- 夺命雷公狗---微信开发52----网页授权(oauth2.0)获取用户基本信息接口(2)
- 微信开发笔记——微信网页登录授权,获取用户信息
- 微信公众号开发-微信网页授权获取用户openid以及用户信息的步骤
- 微信网页开发之网页授权获取用户信息
- 微信公众号开发-微信网页授权获取用户openid以及用户信息的步骤
- 微信开发 网页授权获取用户基本信息
- 微信开发之网页授权获取用户信息(二)
- nodejs微信开发--网页获取用户授权信息
- 微信公众号开发二:关于授权网页获取用户微信信息注册用户的开发
- 微信开发-网页授权获取用户基本信息