微信小程序 学生信息的安全性

1.在  app.js里边写入微信登录时,发送登陆者的 res.code 到后台换取 openId, sessionKey, unionId  代码如下:
// 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        console.log(res.code);
        wx.request({
          url: this.globalData.url.session,
          data:{
            code:res.code
          },
          success:res=>{
            console.log(res);
            console.log(res.header['Set-Cookie']);
            wx.setStorage({
              key: 'session_id',
              data: res.header["Set-Cookie"],
            })
          }
        })
      }
    })

2.获取用户的信息,若已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框,可以将 res 发送给后台解码出 unionId

由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回,所以此处加入 callback 以防止这种情况,代码如下:

// 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo

              // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    })
  },

3.在学生列表的js文件中写入以下代码或得访问权限 代码如下:

header: {
      Cookie: wx.getStorageSync('session_id')
    },

4.在一个新的控制器中写入身份验证的方法 代码如下:

   //身份验证
	public function checksession($code){
    // echo $code;
    // exit;
    // if(empty($code)) return false;

    $appid = "wx79905acc254e34a7";
    $secret = "d4e7fd6a7469d56eee30190245d8d3a1";

    $url = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$secret}&js_code={$code}&grant_type=authorization_code";

    $ret = https_get($url);
    // echo $ret;
    // exit;

    $arr = json_decode($ret,true);
    if(isset($arr['openid']) && isset($arr['session_key'])){
      session('openid',$arr['openid']);
      session('session_key',$arr['session_key']);
      // $session_id = session_id();
      // session($session_id,$arr['openid'] . $arr['session_key']);
      // echo $session_id;
    }else{
      die($ret);
    }

  }
5.在php文件中写入身份验证和阻止非法访问用户 代码如下:
public function _initialize(){
     if(!session('?openid')||!session('?session_key')){
            die('非法用户访问');
        }
  }
代码完成。

你可能感兴趣的:(微信小程序 学生信息的安全性)