PHP实现微信小程序授权登录

PHP实现微信小程序授权登录(示例)

    public function login()
    {
        //接收参数
        $code = input('code'); //code码
        $nickName = input('nickname'); //微信昵称
        $avatarUrl = input('avatar'); //微信头像
        //验证参数
        if (empty($code) || empty($nickName) || empty($avatarUrl)){
            return json(['status'=>500,'msg'=>'参数不能为空']);
        }
        //自己到微信公众平台获取
        $appid = ' ';
        $secret = ' ';
        //获取openid
        $url = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$secret}&js_code={$code}&grant_type=authorization_code";
        $userInfo = json_decode(file_get_contents($url),true);
        if (empty($userInfo['openid'])) $this->error('登陆失败,'.$userInfo['errmsg'],'',$userInfo['errcode']); 
        //存储数据
        $userInfo['nickname'] = $nickName;
        $userInfo['avatar'] = $avatarUrl;
        $userInfo['createtime'] = time();
        $userInfo['updatetime'] = time();
        //根据获取的openid 来查看数据库 有的话更新 session_key 没有的话添加
        $model = new Member();
        $data = $model->where('openid',$userInfo['openid'])->find();
        if ($data){
            //存在数据 更新
            $model->where('openid',$userInfo['openid'])->update(['session_key'=>$userInfo['session_key']]);
            //获取用户id
            $userInfo['user_id'] = $data['id'];
            $token =  signToken($userInfo['user_id']);
        }else{
            //不存在将用户信息添加入库 获取自增的id
            $token =  signToken($userInfo['user_id']);
            $userInfo['user_id'] = $model->insertGetId($userInfo);
        }
        $this->success('登陆成功',['token'=>$token],'200');
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值