微信小程序登录授权

1、封装接口

//在根目录下创建http文件,里面新建一个js文件,CV进去
module.exports=(url,method,data,token=true)=>{
  return new Promise((resolve,reject)=>{
    wx.request({
      url,url,
      method:method,
      data:Object.assign({},data),
      header:token?{"Content-Type": "application/text"}:{"content-type":"application/x-www-form-urlencoded"},
      success(res){
        resolve(res)
      },
      fail(err){
        reject(err)
      }
    })
  })
}

2.在http.js里面获取code

//登录授权,获取code
function logines(code){
  return fetch(baseUrl+'/user/wxapp/login',"post",{code:code,type:2},false)
}
//登录成功后返回的token信息
function delet(token){
  return fetch(baseUrl+`/user/detail?token=${token}`,"get")
}
//退出登录获取的token信息
function onlogin(token){
  return fetch(baseUrl+`/user/loginout?token=${token}`,"get")
}

3.在wxml页面

//必须设置open-type,bindgetuserinfo,这些是固定的,不能改
 <van-button type="default" size='small' bindgetuserinfo="getUserInfo" open-type="getUserInfo">立即登录</van-button>

4. 在我的user.js里面

// pages/user/user.js
let app = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    show: true,
    list: []
  },
  qin(){
    wx.clearStorage()
    wx.reLaunch({
      url: '/pages/wd/wd',
    })
  },
  getUserInfo(e) {
    //判断是确定还是取消
    if(!e.detail.userInfo){
      wx.showToast({
        title: '已取消',
      })
      return false
    }
    //登录
    let _that=this
    wx.login({
      success(req) {
            app.http.logines(req.code).then(res => {
              wx.setStorageSync('token', res.data.data.token)
              _that.login()
            })
          }
        })
  },
  login(){
  //登录的时候获取token信息并判断code
    app.http.delet(wx.getStorageSync('token')).then(res => {
      if(res.data.code==2000){
        this.setData({
          show:true
        })
      }else{
        this.setData({
          list:res.data.data.base,
          show:false
        })
      }
    })
  },
  onLoad: function () {
  //判断获取的token信息
    if(wx.getStorageSync('token')){
      this.login()
      //通过this.setData来改变
      this.setData({
        show:false
      })
    }else{
      this.setData({
        show:true
      })
    }
  },
  //退出登录的时候通过get获取token里的信息
  tuei(){
    app.http.onlogin(wx.getStorageSync('token')).then(res=>{
      if(res.code==0){
        wx.removeStorageSync('token')
        this.setData({
          show:true
        })
      }
    })
    wx.reLaunch({
      url: '/pages/wd/wd',
    })
  }
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值