MICUU
微资讯
声卡
创新2024全套教程
5.1声卡全套
创新声卡驱动
板载声卡调试全套教程
Sam机架安装
Sam机架
音效助手
专题
文档
技术文档汇总
站内文档
更多
软件
更新日志
关于
装机必备
Gramos模板
光年后台模板
Betube模板
美图
友情链接
站内导航
关于
搜索
退出登录
登录
原创
(超详细)微信小程序登录获取用户的openid及unionid[PHP版]
2020-01-14
29.94w热度
> (超详细)微信小程序登录获取用户的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
掘金
更多>