小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。
其中 openid 是用户的唯一标识符,可以在页面中要求用户输入手机号 再将手机号与其绑定起来, 省去了用户注册设置密码的过程,也不用频繁的使用手机验证码,
但是这个东西是getUserInfo无法获取的
微信官方提供的获取的方法
1.调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
2.调用 code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。
操作过程如下
调用wx.login在success的回调函数中会有code 将res.code发送至后台进行请求后可再由后台处理获得数据
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
console.log(res.code);
wx.request({
url: 'http://localhost/mi/getopenID.php',
data:{code:res.code},
success:(res)=>{
console.log(res.data.openid);
console.log(this);
this.globalData.openID=res.data.openid;
}
})
}
})
后台代码如下 复制直接用好啦 反正也看不懂 记得配置appid appsecret 否则会请求不到
/**
* Created by PhpStorm.
* User: Lee
* Date: 2018-10-11
* Time: 19:15
*/
//声明CODE,获取小程序传过来的CODE
$code = $_GET["code"];
//配置appid 此处填写你的appid
$appid = "";
//配置appscret 此处填写你的appsecret
$secret = "";
//api接口
$api = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$secret}&js_code={$code}&grant_type=authorization_code";
//获取GET请求
function httpGet($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 2);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 2);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);
return $res;
}
//发送
$str = httpGet($api);
echo $str;
然后就可以看到返回的openid 啦
就是这么一长串东西 要往数据库存的时候记得确认下自己数据库字段的允许长度 最好在30以上
附:查询自己appid appsecret的方法
如使用的是测试号
在开发工具中右上角点击测试号 在弹出网页中点击申请地址
登录后即可看到自己的appid 和 appsecret
如果注册过小程序 则在登陆小程序后,在左侧选择设置 在开发设置中查看自己的appid 和 appsecret 这个appsecret只能查看一次 ,看完后记得保存,重置很麻烦
拿到openid 后就可以愉快的为所欲为了,用户唯一标识 想怎么用怎么用