微信开发网页登录授权并获取用户个人信息(GET)

步骤一:申请微信开发者测试账号
https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
在这里插入图片描述
步骤二:需要一个服务器,用来获取你要的信息,我使用的是阿里云
https://www.aliyun.com/?utm_content=se_1000301881
有了阿里云后推荐使用最近挺火的Xshell和Xftp来操作服务器
个人使用的话是免费的
https://www.netsarang.com/zh/free-for-home-school/

步骤三:下载个微信web开发者工具,不仅可以用来测试微信,其他的也可以测试
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

步骤四:可以页面设置个超链接进行测试,跳转到用户授权页面
授权链接:
https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
在这里插入图片描述
也可内嵌二维码授,直接设置一个div id设为login_container
步骤1:在页面中先引入如下JS文件(支持https):
http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js
步骤2:在需要使用微信登录的地方实例以下JS对象:
var obj = new WxLogin({
self_redirect:true,
id:“login_container”,
appid: “”,
scope: “”,
redirect_uri: “”,
state: “”,
style: “”,
href: “”
});
在这里插入图片描述
步骤五:当用户确认授权后,将返回一个code,可以通过code获取access_token
注意:code是一次性的,这里的access_token网页临时授权的,也是一次性的
不同的是还有一个access_token是全局接口使用凭证,有效期两个小时
获取方法,需要appID和appsercret
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
这个access_token,是微信公众号的全局唯一票据,各个微信接口调用都需要用到它。这个接口每天使用限制是2000次,所以自动获取这个access_token是有限制,不能所以接口调用都去重新获取。它的有效期是2个小时,已经自动实现了平滑过渡,可以放心的每隔2小时调用一次。

以下通过code获取access_token,这个access_token将在下一步用来获取用户信息
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
在这里插入图片描述
返回说明

正确的返回:
{
“access_token”:“ACCESS_TOKEN”,
“expires_in”:7200,
“refresh_token”:“REFRESH_TOKEN”,
“openid”:“OPENID”,
“scope”:“SCOPE”,
“unionid”: “o6_bmasdasdsad6_2sgVt7hMZOPfL”
}
在这里插入图片描述
可以用file_get_contents(url)获取网页返回的信息

我是通过curl拓展库来获取url的信息,相对file_get_contents()更快更稳定
r e s a r r = c u r l g e t c o n t e n t s ( res_arr = curl_get_contents( resarr=curlgetcontents(url);
print_r($res_arr); //打印看看结果

function curl_get_contents($url) {
$ch = curl_init();//初始化

curl_setopt($ch, CURLOPT_URL, $url);//登录提交的地址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 抓取结果直接返回(如果为0,则直接输出内容到页面)
curl_setopt($ch, CURLOPT_HEADER, 0);//是否显示头部信息  
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);//响应超时时间s

$res_data = curl_exec($ch);//执行并获取HTML文档内容
if ($res_data === false) {//检查错误
	$res_data = 'cURL error:' . curl_error($ch);
}
curl_close($ch);//关闭curl
return $res_arr;//返回结果

}

步骤六:通过步骤五获得的access_token和openid获取用户信息
我的代码,供参考

$_SESSION[‘access_token’] = $res_arr[‘access_token’];
$_SESSION[‘openid’] = $res_arr[‘openid’];
$url = “https://api.weixin.qq.com/sns/userinfo?access_token=” . $_SESSION[‘access_token’] . “&openid=” . $_SESSION[‘openid’] . “&lang=zh_CN”;
r e s a r r = c u r l g e t c o n t e n t s ( res_arr = curl_get_contents( resarr=curlgetcontents(url);
print_r($res_arr);
结果:
在这里插入图片描述
我使用的是/sns/userinfo获取用户个人信息,以下是接口说明
在这里插入图片描述
参考:
微信开发文档https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=58dd5924aafd39c69972c47538101daba7237050&lang=zh_CN
Oauth2.0协议http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值