ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

thinkphp 微信小程序登陆

2021-07-05 12:02:46  阅读:240  来源: 互联网

标签:openid code 微信 avatar nickname user thinkphp data 登陆


 //校验openid
    public function getOpenid(){
        if (!$this->request->isPost()) {
            $this->error('请求类型错误');
        }
        $appid = config('wxpay.appid');
        $secret = config('wxpay.secret');
        $js_code = input('code','');
        $url = 'https://api.weixin.qq.com/sns/jscode2session';
        $data = array('appid' => $appid,'secret' => $secret,'js_code' => $js_code,'grant_type' => 'authorization_code',);
        $res = httpRequest($url, 'POST', $data);
        $arr = json_decode($res, true);
        if (isset($arr['errcode']) && !empty($arr['errcode'])) {
            $this->error($arr['errmsg']);
        }
        $this->success('获取成功',$arr);
    }

    public function wxLogin(){
        if (!$this->request->isPost()) {
            $this->error('请求类型错误');
        }
        $openid = input('openid','');
        $avatar = input('avatar','');
        $nickname = input('nickname','');
        if(empty($openid) || empty($avatar) || empty($nickname)){
            $this->error('openid或用户信息为空','');
        }
        $user = db('user')->where('openid', $openid)->find();
        if ($user) {
            unset($user['openid']);
            unset($user['password']);
            $this->success('登录成功',$user);
        } else {
            $data_user = ['openid'=>$openid,'avatar'=>$avatar,'nickname'=>$nickname,'status'=>'normal','jointime'=>time()];
            $id = db('user')->insertGetId($data_user);
            if($id){
                $user = db('user')->where('openid', $openid)->find();
                unset($user['openid']);
                unset($user['password']);
                $this->success('登录成功',$user);
            }else{
                $this->error('登录失败','');
            }
        }
    }
 <button open-type="getUserInfo" bindgetuserinfo="register" class='login-btn'>授权登录</button>

/**
 * 注册
 */
register: function (e) {
  console.log(e.detail.userInfo)
  var that = app

  wx.login({
    success: res => {
      var that = this
      if (res.code) {
        var url = 'api/User/getOpenid'
        var params = { 
          code: res.code,
        }
        util.wxRequest(url,params,"POST",data => {
          wx.setStorageSync('openid',data.data.openid) 
         }, data => { }, data => { })
      } else {
        that.globalData.login = false
        console.log('获取用户code失败')
      }
    }
  }) 
   
  if (e.detail.userInfo !== undefined){
      var param = {
        "openid":wx.getStorageSync('openid'),
        "avatar":e.detail.userInfo.avatarUrl,
        "nickname":e.detail.userInfo.nickName,
      }

      util.wxRequest('api/User/wxLogin',param,"POST",data => {
       console.log(data)
       }, data => { }, data => { })
    }
  },

标签:openid,code,微信,avatar,nickname,user,thinkphp,data,登陆
来源: https://blog.csdn.net/qq_28098919/article/details/118486877

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有