小程序获取授权

微信小程序限制自动弹出授权页面,需要用户点击button 弹出授权框,实现用户授权

wxtml

<view wx:if="{{isHide}}">
    <view wx:if="{{canIUse}}" >
        <view class=‘header‘>
            <!-- //<image src=‘/images/wx_login.png‘></image> -->
        </view>

        <view class=‘content‘>
            <view>申请获取以下权限</view>
            <text>获得你的公开信息(昵称,头像等)</text>
        </view>

        <button class=‘bottom‘ type=‘primary‘ open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo">
            授权登录
        </button>
    </view>
    <view wx:else>请升级微信版本</view>
</view>
<view wx:else>
    <view>我的首页内容</view>
</view>
<image src="{{userAvatarUrl}}" style="width:300rpx;height:300rpx;"></image>

css

/* pages/loading-test.wxss */

.header {
    margin: 90rpx 0 90rpx 50rpx;
    border-bottom: 1px solid #ccc;
    text-align: center;
    width: 650rpx;
    height: 300rpx;
    line-height: 450rpx;
}

.header image {
    width: 200rpx;
    height: 200rpx;
}

.content {
    margin-left: 50rpx;
    margin-bottom: 90rpx;
}

.content text {
    display: block;
    color: #9d9d9d;
    margin-top: 40rpx;
}

.bottom {
    border-radius: 80rpx;
    margin: 70rpx 50rpx;
    font-size: 35rpx;
}

js

Page({
  data: {
    //判断小程序的API,回调,参数,组件等是否在当前版本可用。
    canIUse: wx.canIUse(‘button.open-type.getUserInfo‘),
    isHide: false,
    userAvatarUrl: ‘../images/head.png‘
  },
  changeUserAvatarUrl: function (userAvatarUrlParam){
    this.setData({
      userAvatarUrl: userAvatarUrlParam
    })
  },
  onLoad: function () {
    var that = this;
    // 查看是否授权
    wx.getSetting({
      success: function (res) {
        if (res.authSetting[‘scope.userInfo‘]) {
          wx.getUserInfo({
            success: function (res) {
              console.log(‘getUserInfo:---‘,res)
              that.changeUserAvatarUrl(res.userInfo.avatarUrl)
              // 用户已经授权过,不需要显示授权页面,所以不需要改变 isHide 的值
              // 根据自己的需求有其他操作再补充
              // 我这里实现的是在用户授权成功后,调用微信的 wx.login 接口,从而获取code
              wx.login({
                success: res => {
                  // 获取到用户的 code 之后:res.code
                  console.log("用户的code:" + res.code);
                  // 可以传给后台,再经过解析获取用户的 openid
                  // 或者可以直接使用微信的提供的接口直接获取 openid ,方法如下:
                  // wx.request({
                  //     // 自行补上自己的 APPID 和 SECRET
                  //     url: ‘https://api.weixin.qq.com/sns/jscode2session?appid=自己的APPID&secret=自己的SECRET&js_code=‘ + res.code + ‘&grant_type=authorization_code‘,
                  //     success: res => {
                  //         // 获取到用户的 openid
                  //         console.log("用户的openid:" + res.data.openid);
                  //     }
                  // });
                }
              });
            }
          });
        } else {
          // 用户没有授权
          // 改变 isHide 的值,显示授权页面
          console.log(‘没有获取授权‘)
          that.setData({
            isHide: true
          });
        }
      }
    });
  },

  bindGetUserInfo: function (e) {
    console.log("bindGetUserInfo:---",e)
    if (e.detail.userInfo) {
      //用户按了允许授权按钮
      var that = this;
      // 获取到用户的信息了,打印到控制台上看下
      console.log("用户的信息如下:---",e.detail.userInfo);
      //授权成功后,通过改变 isHide 的值,让实现页面显示出来,把授权页面隐藏起来
      that.changeUserAvatarUrl(e.detail.userInfo.avatarUrl)
      that.setData({
        isHide: false
      });
    } else {
      //用户按了拒绝按钮
      wx.showModal({
        title: ‘警告‘,
        content: ‘您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!‘,
        showCancel: false,
        confirmText: ‘返回授权‘,
        success: function (res) {
          // 用户没有授权成功,不需要改变 isHide 的值
          if (res.confirm) {
            console.log(‘用户点击了“返回授权”‘);
          }
        }
      });
    }
  }
})

原文地址:https://www.cnblogs.com/llllpzyy/p/11428417.html

时间: 2024-11-08 14:41:24

小程序获取授权的相关文章

小程序获取授权信息

1,open-type,不授权使用头像昵称 2,获取用户信息,需要授权------然后login--后台获取 3,获取用户信息,只能通过button ,open-type 4,getsetting获取授权的信息 5,opensetting获取已经授权的设置 6,openauthing:获取非用户信息的授权 7,getuserinfo不弹出了,必须button调用 原文地址:https://www.cnblogs.com/bluestear/p/9865004.html

微信小程序获取登录手机号

小程序获取登录用户手机号. 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发. 首先,放置一个 button 按钮,将 button 的 open-type 的属性值设为 getPhoneNumber . 当用户点击并通过之后,通过绑定的事件获取微信服务器返回过来的加密数据,再根据 session_key 和 app_id 通过后台解密就可以获取手机号啦. 说到这,就上码吧!!! 1 <!--index.wxml--&g

微信小程序-获取当前位置和城市名

微信小程序-获取当前城市位置 1, 获取当前地理位置,首先要拿到用户的授权wx.openSetting: 2,微信的getLocation接口,获取当前用户的地理位置(微信返回的是经纬度,速度等参数): 3,微信没有将经纬度直接转换为地理位置,借用腾讯位置服务中关于微信小程序的地理转换JS SDK 的API(返回信息中包括国家,省,市,区,经纬度等地理位置)步骤描述清楚以后,下面就开始按步骤操作了:(本文仅仅讲述如何获取用户地理位置的授权) 图示为获取用户地理位置授权弹窗 在用户首次进入某页面(

小程序获取用户信息的方式

一.在此之前,小程序获取微信的用户信息,用的都是wx.getUserInfo //例如 onLoad() { var that = this; wx.getUserInfo({ this.setData({ thumb: res.userInfo.avatarUrl, nickname: res.userInfo.nickName }) }) } 二.自从微信接口有了新的调整之后 wx.getUserInfo()便不再出现授权弹窗了(PS:但仍能用于获取已授权用户数据),需要使用button做引

微信小程序获取输入框(input)内容

微信小程序---获取输入框(input)内容 wxml <input placeholder="请输入手机号码" maxlength="11" type="tel" bindinput="getInput" /> js Page({ data:{ getInput: null }, getInput:function(){//方法1 this.data.getInput = e.detail.value; }, /

微信小程序 获取用户openid

1,可以在小程序app.js入口文件中放入登录代码 wx.login({ success: res => { // 登录注册接口 if (res.code) { // 调用服务端登录接口,发送 res.code 到服务器端换取 openId, sessionKey, unionId并存入数据库中 } else { console.log('登录失败!' + res.errMsg) } } }); 2,服务端PHP,小程序获取openid接口 // 获取openid function getOpe

微信小程序-获取用户信息和openid,session_key,

1:微信小程序获取用户信息:比如常用的 avatarUrl (用户头像),nickName (用户名称) 等等, (1):获取用户信息调用 wx.getUserInfo 代码如下: 直接请求接口就可以了,随后把数据存放到storage中,下次直接取 就不用再请求接口,, 2:获取 openid (1):请求wx.login 接口,代码如下: url:是微信提供的 appid:是小程序的appid secret:是小程序开发设置的 AppSecret 只要获取到这两项,用户信息可以用于页面,ope

微信小程序获取国外今日天气预报信息接口

使用天气API的国外今日天气预报接口制作 返回json预览 { cityid: "601010100", city: "堪培拉", cityEn: "Canberra", country: "澳大利亚", countryEn: "Australia", update_time: "2019-04-24 18:00:00", wea: "晴", wea_img: &qu

【微信小程序】用户首次进入小程序拒绝授权,如何再次调用授权页面,获取用户信息userInfo

前言:微信小程序的app.js里面,最少有2个接口,一个wx.login:一个是wx.getUserInfo: 前者得到腾讯给我们的微信用户唯一的code,通过code获取openid,这个不需要用户授权,我们肯定能得到: 但是,后者是需要用户授权,我们才能通过腾讯得到用户的其他信息,比如nickname.avatarUrl.encryptedData.iv等,如果你只需要openid,下面的代码你可以不用看了,下面重点讲解如何 多次调用wx.getUserInfo或者app.getUserIn