新版小程序授权登录

阅读次数: 2,981

  • A+
所属分类:建站

小程序端

let code = '';
    wx.login({
      success:(res) => {
          code = res.code;
      },
    });

    console.log(code);
    wx.getUserProfile({
            desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
            success: (file) => {
              console.log(code);
              console.log(file)
              file.code = code;
              wx.request({
                      url: 'https://www.xxx.com/api/wechat/login',     
                      method: 'post',
                      dataType  : 'json',
                      data: {
                        info: file
                      },
                      success: function (res) {
                        console.log(res);
                      }
                    })
            }
          })

后端扩展打包下载,下载后放入 extend/lib 目录下

隐藏内容需要支付:¥1
立即购买

使用案例

 public function test(){

        $code = input("info.code", '', 'htmlspecialchars_decode');
        $rawData = input("info.rawData", '', 'htmlspecialchars_decode');
        $signature = input("info.signature", '', 'htmlspecialchars_decode');
        $encryptedData = input("info.encryptedData", '', 'htmlspecialchars_decode');
        $iv = input("info.iv", '', 'htmlspecialchars_decode');

        // p(input());
        // die();

        $wxHelper = new WXLoginHelper();
        $data = $wxHelper->checkLogin($code, $rawData, $signature, $encryptedData, $iv);
        halt($data);

    }

小程序端的顺序要对,不然会出现签名不匹配

现在的模式,其实后台只根据code就能获取用户的所有信息,不用判断签名和验证也能用,但是平台大了之后容易被钻漏洞。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: