米
心情
所有
图集
登录
搜索
原创
(超详细)微信小程序登录获取用户的openid及unionid[PHP版]
米醋儿
发布于:2020-01-14
> (超详细)微信小程序登录获取用户的openid及unionid[PHP版] 现如今,任何APP的用户才是王道,不论什么途径,我们最希望得到的就是用户,因此微信小程序的登录页显得尤为重要。 下面就是微信小程序的登录示例demo PHP版。 废话不多说,请看我们的代码 1:小程序代码部分 ``` const APP_ID = 'openid'; //输入小程序appid const APP_SECRET = 'secret'; //输入小程序app_secret var OPEN_ID = '' //储存获取到openid var SESSION_KEY = '' //储存获取到session_key const app = getApp() // pages/user/user.js Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { //判断用户登录信息是否存在-不存在则登录操作 [省略] //登录 将信息发送给后台 获取sessionkey 及openid 并将信息保存到本地 wx.login({ success(res) { //wx.login console.log('wx.login获取的数据') console.log(res) if (res.code) { //获取用户信息 wx.getUserInfo({ "withCredentials": true, success: function (data) { console.log('wx.getUserInfo获取的数据') console.log(data) // var userInfo = res.userInfo // var nickName = userInfo.nickName // var avatarUrl = userInfo.avatarUrl // var gender = userInfo.gender //性别 0:未知、1:男、2:女 // var province = userInfo.province // var city = userInfo.city // var country = userInfo.country var rawData = data.rawData; var signature = data.signature; var encryptedData = data.encryptedData; var iv = data.iv; wx.request({ url: 'http://admin.micuer.com/ApiLogin/login_xcx', data: { "code": res.code, "rawData": rawData, "signature": signature, 'iv': iv, 'encryptedData': encryptedData }, method: 'POST', success: function (info) { //console.log(info); if (info.data.data.session_key){ //登录成功,将用户信息保存本地 console.log(info.data.data.session_key) try { wx.setStorageSync('userinfo', info.data.userinfo) wx.showToast({ title: '登录成功', }) } catch (e) { } }else{ wx.showToast({ title: '登录失败', }) } } }) } }) } else { console.log('登录失败!' + res.errMsg) } } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } }) ``` 2:PHP后台部分 tp6版本示例[tp5可用] ``` <?php declare (strict_types = 1); namespace app\controller; use think\facade\Db; class ApiLogin extends Common { public function login_xcx() { $code = input("post.code"); $appid = '您的appid'; $secret = "您的secret"; $url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code'; $arrContextOptions = [ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, ] ]; $res = file_get_contents($url, false, stream_context_create($arrContextOptions)); $res = json_decode($res,true); $userinfo = input("post.rawData"); $userinfo = json_decode($userinfo,true); $data["data"] = $res; $data["userinfo"] = $userinfo; $openid = $res["openid"]; $user = Db::name("user")->where("openid_wx",$openid)->find(); $update["headimgurl"] = $userinfo["avatarUrl"]; $update["nickname"] = $userinfo["nickName"]; $update["gender"] = $userinfo["gender"]; $update["last_time"] = time(); $update["last_ip"] = \think\facade\Request::ip(); if($user){ //用户已存在 更新用户的头像及登录信息 Db::name("user")->where("id",$user["id"])->update($update); }else{ //新用户 $update["reg_time"] = time(); $update["reg_ip"] = \think\facade\Request::ip(); $update["sign_time"] = time(); $update["openid_wx"] = $res["openid"]; $uid = Db::name("user")->insertGetId($update); } return json($data); } } ``` 3:登录成功后返回示例 [](http://v2.micuer.com/public/uploads/20200114/5e1d5b7ad1b12.png) > 好啦,代码如上!不是很完善,但是对于我们二开完全够用了。希望本教程对大家有所帮助。 转载请注明出处:http://micuer.com 网
注:原创不易,转载请注明出处(
http://micuu.com/new/418.html
),本站所有资源来源于网络收集,如有侵权请联系QQ245557979进行清除。
最后修改与 2022-02-20
上一篇:
python批量给图片添加水印
下一篇:
推荐一个非常酷炫的微信小程序ui框架color-ui
留言反馈
请先登录
问题反馈渠道,如有软件无法下载或者其他问题可反馈。【由于某种原因,目前留言不展示】
用户需要登录后才能留言反馈
立即留言
珍藏视频
10分钟高效燃脂
30天高效瘦脸操
5分钟缓解颈椎操
友人
微博
全民K歌
唱吧
今日头条
悠悠网
科技小锅盖
彼岸桌面
阮一峰
laravel社区
V2ex
掘金
更多>