微信授权获取openID等信息
微信测试平台连接:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
授权操作必须用外网(推荐使用:https://natapp.cn/)
- 前端直接请求code
- 把code发给后端(这里是ajax1)
- 后端发code请求给微信
- 微信返回数据给后端
- 后端返回数据(ajax1返回数据)
第一步就是进入需要请求授权的页面
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
APPID:这是微信分配的ID,在可以在公众号中找
REDIRECT_URI:需要获取数据的页面(域名必须在公众号里设置,不然会返回10003)
scope:获取的信息类型(snsapi_base 获取openID,snsapi_userinfo 可以获取到用户名等基本信息)
其他数值一般不设置
当进入第一步的页面时,微信如果设置正确,微信会重定向
到REDIRECT_URI/?code=CODE&state=STATE
code在连接中,需要取出来
然后发起一个ajax请求到后端接口,带上code
后端收到code后从服务器发起请求
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
这里的APPID和SECRET都是在微信公众号中分配的
code从前端post上传
发出请求后,微信会返回一个钥匙 access_token 并且返回该用户的 openID
后端可以使用access_token请求微信的接口获取用户的信息了
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
请求得到的数据为JSON可以返回给前端页面
详细说明见官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842