// pages/star/star.js
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 用来换取token的四个必传参数
    // code换取的'session_key'和'openid'
    code:"",
    nickName:"",
    avatar:"",
  },
  // 获取用户信息(授权)
  star(e) {
    // console.log(e); // 此处会返回换取token必须的'encryptedData'和'iv'两个参数,
    // this.setData({
    //   encryptedData: e.detail.encryptedData,
    //   iv: e.detail.iv
    // });
    this.setData({
      nickName: e.detail.userInfo.nickName,
      avatar: e.detail.userInfo.avatarUrl
    })
    wx.setStorageSync('avatarUrl', e.detail.userInfo.avatarUrl);
    wx.setStorageSync('nickName', e.detail.userInfo.nickName);
    // 授权之后需要调取登录的方法
    this.login()
  },
  // 登录
  login() {
    let t = this;
    // let url = "用{'session_key','openid','encryptedData','iv'}换取token的接口";
    let url = "/api/user/login";
    // 此处是获取token需要传递的参数
    let params = {
      code:t.data.code,
      nickname:t.data.nickName,
      avatar:t.data.avatar
    }
    app.post(url, params,"post").then(r => {
      console.log(r) // 此处会返回一个token => (小程序登录的唯一标识)
      // 需要将token存在缓存中,(以备需要);
      wx.setStorageSync("token", r.token) // =>存入的是一个键值
      // 获取个人信息
      let url = "/api/user/info";
      app.post(url)
      .then(res=>{
        wx.setStorageSync("token", res.token);
        wx.setStorageSync("is_vip", res.is_vip) //是否为vip
        wx.setStorageSync("userId",res.id)
        // 之后跳转页面/执行方法
        wx.navigateBack({
          delta:1
        })
      })
      
    }).catch(err => {
      console.log(err)
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    wx.login({
      success: (res) => {
        this.setData({
          code:res.code
        })
        console.log(res, "此处会返回一个code");
        // var url = "用code换取'session_key'和'openid'的接口";
        // let url = "api/user/getSessionKey";
        // var params = {
        //   code: res.code //这是wx.login的方法返回的code
        // };
        // app.post(url, params).then(r => {
        //   console.log(r) //此处会返回用code换取的'session_key'和'openid'
        //   // 之后将他们赋值到data中,方便调用
        //   this.setData({
        //     session_key: r.session_key,
        //     openid: r.openid
        //   })
        // }).catch(err => {
        //   console.log(err)
        // })
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})