可以直接复制粘贴,只需要改一些东西就可以了
首先在wxml中用微信自带的button开放属性
然后在对应的js中创建一个login方法,因为上面bindtap指向的是login,所以就要创建一个新的方法
login(evt){//获取微信授权弹框 wx.getUserProfile({ desc: 'desc', success:(res)=>{ //打印是否接到微信数据 console.log(res); //wx.login是登录的意思,就是登录方法 wx.login({ success: (res1) => { //开始打印看是否接到值 console.log(res1); let code=res1.code; let nickname=res.userInfo.nickName; let avatarUrl=res.userInfo.avatarUrl; //wx.request是跳转后台方法 wx.request({ //url跳转的地址(后台的接口) url: 'url', //怎么请求(可以用get也可以用post) method:"POST", //data传值,从小程序传到后端的数据 data:{code:code,nickname:nickname,avatarUrl:avatarUrl}, //成功回调 success:function(rrr){ //wx.navigateTo跳转的方法 wx.navigateTo({ //跳转到哪个页面 url: '/pages/', }) } }) }, }) } })},
然后在后端控制器中写url的接口
function login(Request $request){ $data=$request->post(); $code=$data['code']; //小程序的id $Appid=""; //小程序的Secret $AppSecret=""; $loginurl="https://api.weixin.qq.com/sns/jscode2session?appid=$Appid&secret=$AppSecret&js_code=$code&grant_type=authorization_code"; $res=json_decode(file_get_contents($loginurl),true); $login=[ 'openid'=>$res['openid'], 'session_key'=>$res['session_key'], //微信昵称 'nickname'=>$data['nickname'], ]; //直接写表明后面跟条件 $url=User::where('openid',$login['openid'])->first(); if (isset($url)){ return [ 'code'=>203, 'data'=>'', 'msg'=>'数据已存在' ]; }else{ //DB里面跟你要添加的表名 \DB::table('User')->insert($login); return [ 'code'=>200, 'data'=>'', 'msg'=>'添加成功' ]; } }
微信授权登录就可以实现了
来源地址:https://blog.csdn.net/Whtmlindex/article/details/130653706