php 之 微信小程序授权登录
2021/11/25 22:10:59
本文主要是介绍php 之 微信小程序授权登录,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
html
<button open-type="getUserInfo" bindtap="login">微信一键登录</button>
JS
login(){ wx.getUserProfile({ desc: 'desc', success:e=>{ let wx_name = e.userInfo.nickName let wx_photo = e.userInfo.avatarUrl wx.login({ success:d=>{ let code = d.code wx.request({ url: 'http://zy.com/index.php/api/wx_login', method:"POST", data:{code,wx_name,wx_photo}, success:res=>{ if(res.data.code==200){ wx.setStorageSync('token', res.data.token) wx.navigateTo({ url: '/pages/index/index' }) return false } wx.showToast({ title: res.data.msg, icon:"error" }) } }) } }) }, fail:e=>{ wx.showToast({ title: "已拒绝", }) } }) },
PHP
public function wx_login(request $request){ $wx_name = $request['wx_name']; $wx_photo = $request['wx_photo']; $code = $request['code']; $appid = config('wx.appid'); $key = config('wx.key'); $url = "https://api.weixin.qq.com/sns/jscode2session?appid=".$appid."&secret=".$key."&js_code=".$code."&grant_type=authorization_code"; $wxInfo = file_get_contents($url,true); $wxInfo = json_decode($wxInfo,true); $openid = $wxInfo['openid']; $session_key = $wxInfo['session_key']; $select = WxUsers::where('openid','=',$openid)->first(); if($select){ $select->session_key = $session_key; $select->wx_name = $wx_name; $select->wx_photo = $wx_photo; $request = $select->save(); $token = base64_encode($openid); if($request) return json_encode(['code'=>200,'msg'=>"登录成功",'token'=>$token]); return json_encode(['code'=>400,'msg'=>"登录失败"]); } $data = [ 'openid'=>$openid, 'session_key'=>$session_key, 'wx_name' => $wx_name, 'wx_photo'=>$wx_name ]; $create = WxUsers::insert($data); $token = base64_encode($openid); if($create) return json_encode(['code'=>200,'msg'=>"授权成功",'token'=>$token]); return json_encode(['code'=>400,'msg'=>"授权失败"]); }
这篇关于php 之 微信小程序授权登录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28怎么把PHP程序打包?-icode9专业技术文章分享
- 2024-09-28怎么用Phar打包PHP程序?-icode9专业技术文章分享
- 2024-09-13手动在github上下载的mfpt包,怎么放到thinkphp5.0框架并正常使用-icode9专业技术文章分享
- 2024-09-05python的<class 'bytearray'>相当于php的哪个数据类型-icode9专业技术文章分享
- 2024-09-05php 导出银行卡号避免科学技术法的方法-icode9专业技术文章分享
- 2024-08-30什么样的php代码质量差被称为垃圾代码-icode9专业技术文章分享
- 2024-08-30用 PHP 调用拼多多的接口以获取订单状态消息的步骤方法和代码示例-icode9专业技术文章分享
- 2024-08-27phpunit单元测试框架的入门和使用方法介绍-icode9专业技术文章分享
- 2024-08-24PHP 中date("w") 周一是多少-icode9专业技术文章分享
- 2024-08-14thinkphp8.0获取域名或主机名方法-icode9专业技术文章分享