直播系统源码小程序端,实现微信登录的完美教程

发布来源:云豹科技
发布人:云豹科技
2020-11-23 10:07:06

很多直播系统源码开发者为了方便运营和引流,都开发了小程序端的直播系统源码,通过微信开放平台,用户在登录直播系统时,可以轻松创建账号并一键获取微信提供的用户身份标识,快速建立小程序内的用户体系。

在直播系统源码层面,实现微信登录的过程是如何实现的呢?让我们一起来看看吧。

 

一、 直播系统源码获取临时登录凭证code

1、 直播系统源码调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器

小程序代码获取code代码如下:

 

 wx.login({      
      success: res => {
        var that = this;
        var code = res.code;
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        that.globalData.userInfo = res.userInfo;
        // userInfo 只存储个人的基础数据
        wx.setStorageSync('userInfo', res.userInfo);
        //此处调用服务接口获取UnionID
        that.getUnionID(code);
      }
    })


2、 wx.login()成功获取到code值后,调用服务器接口返回unionid

3、 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的

关于unionid机制说明详细了解可参考:

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html

二、 .小程序中关于调用服务器接口的直播系统源码如下:

//wxlogin->获取UnionID
 getUnionID: function (code) {
    var that = this;
wx.request({
      //that.globalData.purl:服务器地址
      url: that.globalData.purl + "Login.getUnionid&code=" + code,
      data: {},
      method: 'GET',
      success: function (res) {
        //获取unionid后->登录接口
        var ret = res.data["ret"];
         if (ret == "200") {
          var data = datas.data;
          var code = data['code'];
          if(code == 0){
            var info = data["info"];
            var UnionID = info["0"]["unionid"];//服务器接口返回的unionid值
            that.globalData.UnionID = UnionID;
}
}
 });
  },

以下获取unionid的服务器接口部分直播系统源码使用了PHP语言,且需注意以下a、b两点

a、会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。

b、临时登录凭证 code 只能使用一次

  $url="https://api.weixin.qq.com/sns/jscode2session?appid={$AppID}&secret={$AppSecret}&js_code={$code}&grant_type=authorization_code";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_URL, $url);
        $json =  curl_exec($ch);
        curl_close($ch);
        $arr=json_decode($json,1);
        if($arr['errcode']){
            $rs['code']=1003;
            $rs['msg']='配置错误';
         return $rs;
        }
 /* 小程序 绑定到 开放平台 才有 unionid  否则 用 openid  */
        $unionid=$arr['unionid'];
        if(!$unionid){
 $unionid=$arr['openid'];
        }
   return $unionid; /* 返回unionid值 */

小程序根据服务端传来的unionid,调用服务的登录接口,用来验证微信账号在服务端是否存在并数据一致,验证通过返回服务端存储的用户信息。以上微信小程序直播系统源码微信登录简单说明完成。

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.com

声明:
以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任