zoukankan      html  css  js  c++  java
  • 小程序授权demo

    <button wx:if="{{canIUse}}"   open-type="getUserInfo"  bindgetuserinfo="bindGetUserInfo"    hidden="{{userinfo}}">授权登录</button>
    data: {
    userinfo:false,
    }
    onLoad:function(){
    wx.getStorage({
    key: 'userinfo',
    success: function(res) {
    that.setData({
    userinfo:true
    })
    },
    fail:function(){
    that.setData({
    userinfo: false
    })
    }
    })
    }
    //方法
    bindGetUserInfo: function(e) {
    var that = this;
    console.log(e);
    console.log(e.detail.userInfo)
    wx.login({
    success: res => {
    // ------ 获取凭证 ------
     
    var code = res.code;
    console.log(code);
    if (code) {
    // console.log('获取用户登录凭证:' + code);
    // ------ 发送凭证 ------
    app.util.request({
    "url": "entry/wxapp/GetUid",
    data: {
    code: code
    },
    method: 'POST',
    header: {
    'content-type': 'application/json'
    },
    success: function(res) {
    console.log(res);
    if (res.statusCode == 200) {
    // console.log("获取到的openid为:" + res.data)
    // that.globalData.openid = res.data
      wx.setStorageSync('openid', res.data),//同步操作
           wx.setStorage({//异步操作
                key: 'userinfo',
               data: true,
            }),
            that.setData({
                userinfo: true
             })
    //设置用户信息
    wx.getUserInfo({
    success: res => {
    var u_name = e.detail.userInfo.nickName;
    var u_thumb = e.detail.userInfo.avatarUrl;
    console.log(u_name);
    console.log("aa" + res)
    console.log("aa"+res.errMsg)
    wx.setStorageSync("avatar", res.userInfo.avatarUrl)
    if (res.userInfo.nickName != wx.getStorageSync("nickName")) {
    app.util.request({
    "url": 'entry/wxapp/TyMember',
    data :{
    u_name:u_name,
    u_thumb:u_thumb
    },
    method: 'POST',
    header: {
    'content-type': 'application/json'
    },
    success: function (res) {
    console.log(res);
    if (res.statusCode == 200) {
    // console.log("获取到的openid为:" + res.data)
    // that.globalData.openid = res.data
    wx.setStorageSync('u_name', res.data)
    wx.getStorageSync('u_thumb', res.data)
    } else {
    console.log(res.errMsg)
    }
    },
    })
    }
    }
    })
    } else {
    console.log(res.errMsg)
     
    }
    }
    })
    }
     
    },
    fail: function (err) {
    console.info(err.errMsg);
    wx: showModal({
    title: '警告',
    cancelText: '不授权',
    confirmText: '授权',
    confirmColor: '#37c31a',
    content: '若不授权微信登录,则无法使用XXXXXX;点击重新获取授权,则可重新使用;' +
    '若点击不授权,将无法使用便捷服务。',
    success: function (res) {
    if (res.confirm) {
    console.log('用户点击确认');
    wx.openSetting({
    success: res => {
    if (res.authSetting['scope.userInfo']) {
    wx.getUserInfo({
    success: res => {
    console.log('用户同意授权' + res.userInfo.nickName)
    app.util.request({
    'url': 'entry/wxapp/TyMember',
    data: {
    u_name: u_name,
    u_thumb: u_thumb
    },
    method: 'POST',
    header: {
    'content-type': 'application/json'
    },
    success: function (res) {
    console.log(res);
    if (res.statusCode == 200) {
    // console.log("获取到的openid为:" + res.data)
    // that.globalData.openid = res.data
    wx.setStorageSync('openid', res.data)
    } else {
    console.log(res.errMsg)
    }
    },
    })
    }
    })
    } else {
    console.info('再次不允许');
    }
    }
    })
    } else if (res.cancel) {
    console.log('弹出框用户点击取消')
    }
    }
    })
    }
    })
     
    },
  • 相关阅读:
    JVM源码分析之MetaspaceSize和MaxMetaspaceSize的区别
    JSTREE 实现AJAX重载入时刷新所有节点树
    .NET判断是否为AJAX提交
    防止重复提交的思路
    在使用EF时调用DBFUNCTION扩展方法时,发生ENTITYCOMMANDEXECUTIONEXCEPTION 异常的解决办法
    .NET和JAVA中BYTE的区别以及JAVA中“DES/CBC/PKCS5PADDING” 加密解密在.NET中的实现
    .NET中集合已修改;可能无法执行枚举操作 的解决办法
    ASP.NET中将导出的数据以UTF-8编码方式进行存储
    MVC中的BASE.ONACTIONEXECUTING(FILTERCONTEXT) 的作用
    MVC中部分视图调用方法总结
  • 原文地址:https://www.cnblogs.com/isuansuan/p/9832032.html
Copyright © 2011-2022 走看看