PHP教程

php 之 微信小程序授权登录

本文主要是介绍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 之 微信小程序授权登录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!