美文网首页
判断是否登录

判断是否登录

作者: 欣_m | 来源:发表于2019-11-05 21:45 被阅读0次

1.login.wxml 点击登录按钮 调用获取授权的函数

<view class="login-container">

<image src="/images/pet.jpg" class="pet"></image>

<button class="btn-login" type="primary" open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="getUserInfo">授权登录</button>

</view>

2.login.js 获取用户的信息 微信头像、昵称、地区等

将这些userInfo存入全局变量中

同时获取openid:当用户点击登录页面的按钮后进行授权登录,如果成功,会有一个code,然后再向后台请求。

//授权

  getUserInfo: function(e) {

    console.log(e)

    let self = this;

    app.globalData.userInfo = e.detail.userInfo

    console.log('****用户基本信息*****')

    console.log(app.globalData.userInfo)

    self.getOpenId();

  },

  //获取用户openid

  getOpenId: function() {

    let self = this

    wx.login({

      timeout: 10000,

      success: (result) => {

        if (result.code) {

          wx.request({

            url: `http://10.110.5.35:3000/getUserOpenId`,

            data: {

              code: result.code

            },

            success: res => {

              console.log(res)

              wx.reLaunch({

                url: '/pages/index/index',

              })

            }

          })

        }

      },

      fail: () => {},

      complete: () => {}

    });

  }

3.后台

//获取用户openid

router.get("/getUserOpenId", async (ctx, next) => {

  let params = ctx.request.query;

  console.log('*****params*****')

  console.log(params)

  const appId = ''; // AppID(小程序ID)

  const appSecret = '';// AppSecret(小程序密钥)

  try {

    const res = await koa2Req({

      url: `https://api.weixin.qq.com/sns/jscode2session?appid=${appId}&secret=${appSecret}&js_code=${params.code}&grant_type=authorization_code`

    })

    let data = JSON.parse(res.body);

    ctx.body = {

      "success": true,

      "data": data

    };

  } catch (error) {

    console.log(error)

    ctx.body = {

      "success": false,

      "message": error

    };

  }

})

4.再首页index.js中判断用户是否登录的方法就是判断全局userInfo是否为null

onLoad: function() {

    let self = this;

    let userInfo = app.globalData.userInfo;

    console.log('%%%%用户%%%%%%')

    console.log(userInfo)

    if(userInfo == null){

      console.log('用户未登录,跳转到登录页面')

        wx.redirectTo({

          url: '/pages/login/login',

        })

    }

  },

相关文章

网友评论

      本文标题:判断是否登录

      本文链接:https://www.haomeiwen.com/subject/ceaebctx.html