小程序权限

部分接口在调用的时候会询问用户是否同意获得xxx权限

这种接口在未用户授权或授权列表中没有它时, 会出授权弹框

  • 如果用户已授权,可以直接调用接口, 不再出现弹窗
  • 如果用户已拒绝授权,则短期内不会出现弹窗

0.主要权限包括:

scope对应接口描述
scope.userInfowx.getUserInfo用户信息
scope.userLocationwx.getLocation, wx.chooseLocation, wx.openLocation地理位置
scope.addresswx.chooseAddress通讯地址
scope.invoiceTitlewx.chooseInvoiceTitle发票抬头
scope.werunwx.getWeRunData微信运动步数
scope.recordwx.startRecord录音功能
scope.writePhotosAlbumwx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum保存到相册
scope.camera<camera />摄像头

1.获取用户当前的授权状态: 

wx.getSetting({
  success: (res) => {
    res.authSetting = {
        "scope.userInfo": true,            // 这一项允许
        "scope.userLocation": true         // 这一项允许
     }
  }
})

2.打开授权设置界面:

wx.openSetting({
  success: (res) => {
     res.authSetting = {
        "scope.userInfo": true,
        "scope.userLocation": true
     }
  }
})

3.在调用需授权 API 之前,提前向用户发起授权请求:

// 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scope
wx.getSetting({
    success(res) {
        if (!res.authSetting['scope.record']) {    // 如果record未授权
            wx.authorize({                         // 主动发起授权请求
                scope: 'scope.record',
                success() {
                    wx.startRecord()
                }
            })
        }
    }
})

注意:scope 为 "scope.userInfo" 时,无法弹出授权窗口

4.获取用户信息(特殊权限接口)

wx.getUserInfo(); 接口有调整,使用该接口将 不再出现 授权弹窗

可使用 <button open-type="getUserInfo"></button> 引导用户主动进行授权操作, 如:

<button  open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授权登录</button>

从bindgetuserinfo的事件对象中可以获取用户信息: e.detail.userInfo

还可更便捷获取用户头像和昵称:

<open-data type="userAvatarUrl"></open-data>     // 获取头像

<open-data type="userNickName"></open-data>   // 获取昵称

加载当前页面时, 也可以做一下授权判断:

onLoad: function() {
    // 查看是否授权
    wx.getSetting({
      success: function(res){
        if (res.authSetting['scope.userInfo']) {
          // 已经授权,可以直接调用 getUserInfo 获取头像昵称
          wx.getUserInfo({
            success: function(res) {
              console.log(res.userInfo)    // 等同于e.detail.userInfo
            }
          })
        }
      }
   })
},

bindGetUserInfo: function (e) {
  console.log(e.detail.userInfo)            //  等同于res.userInfo
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java小程序中,权限控制是一个重要的设计方面,可以确保用户只能访问其具有权限的功能和数据。下面是一个简单的权限控制设计示例: 1. 定义角色和权限:首先,你需要定义系统中的角色和相应的权限。例如,角色可以是管理员、普通用户等,权限可以是查看、编辑、删除等。 2. 用户管理:实现一个用户管理系统,用于管理用户信息、角色分配和权限分配等。每个用户应该被分配一个或多个角色。 3. 权限检查:在程序中的关键功能点,例如访问某个页面或执行某个操作之前,需要进行权限检查。可以在代码中使用条件语句或者AOP(面向切面编程)等技术来实现权限检查。 4. 页面级权限控制:对于页面级别的权限控制,可以在前端或后端进行处理。前端可以根据用户的角色和权限动态展示或隐藏页面的某些部分。后端可以在接收到用户请求时进行权限检查,如果用户没有相应的权限,则返回错误信息或重定向到其他页面。 5. 数据级权限控制:除了页面级别的权限控制,还需要对数据进行权限控制。即使用户有访问某个功能的权限,也可能只能访问自己创建的数据或者具有共享权限的数据。在数据库查询或更新数据时,可以根据用户的角色和权限添加相应的过滤条件。 6. 安全性考虑:在权限控制设计中,还需要考虑一些安全性问题。例如,密码的加密存储、防止跨站脚本攻击(XSS)和SQL注入等。可以使用密码哈希算法来存储密码,使用输入验证和输出编码来防止攻击。 请注意,以上只是一个简单的权限控制设计示例,实际的设计可能会更加复杂,取决于你的具体需求和系统规模。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值