微信小程序授权流程

这篇具有很好参考价值的文章主要介绍了微信小程序授权流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

授权流程

小程序中的部分接口,比如地理位置、录音、摄像头、用户信息等,需要用户授权后,才可以调用。把这些接口按使用范围分成多个 scope ,用户选择对 scope 来进行授权,当授权给一个 scope 之后,其对应的所有接口都可以直接使用。

此类接口调用时:

  • 如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
  • 如果用户已授权,可以直接调用接口;
  • 如果用户已拒绝授权,则不会出现弹窗,而是直接进入接口 fail 回调。请开发者兼容用户拒绝授权的场景。

获取用户授权的流程可以分为三个步骤:

1、请求授权:

通过 wx.authorize({ scope, success, fail }) 向用户请求某权限

常用scope列表:

scope 描述
scope.userLocation 地理位置(需要在app.json中配置权限说明)
scope.record 录音
scope.camera 摄像头
scope.userInfo 用户信息

2、授权状态校验

wx.getSetting({success}) 获取用户授权状态, 返回值中只会出现小程序已经向用户请求过的权限

wx.getSetting({
  success (res) {
    console.log(res.authSetting)
    // res.authSetting = {
    //   "scope.userInfo": true,
    //   "scope.userLocation": true
    // }
  }
 })

3、再次请求授权

如果用户拒绝授权,再次使用 wx.authorize() 弹出授权框这种交互不友好。此时,可以打开小程序设置界面,引导用户打开授权。

调用 wx.openSetting 打开设置界面,引导用户开启授权。设置界面只会出现小程序已经向用户请求过的权限。

注意: 只能通过点击行为打开授权界面
微信小程序授权,小程序,微信小程序,小程序,javascript

代码示例(原生小程序):

app.json中配置获取地理位置权限说明

{
  "pages": [
    "pages/launch/launch",
    "pages/recordAuth/recordAuth",
    ...
  ],
  "window": {
    "pageOrientation": "portrait",
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "EasyScan",
    "navigationBarBackgroundColor": "#f8f8f8",
    "backgroundColor": "#f8f8f8"
  },
  "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序视频通话位置展示"
    }
  },
  "sitemapLocation": "sitemap.json"
}

小程序需要授权的页面添加以下逻辑:

const app = getApp()

Page({
  // 页面的初始数据
  data: {},
  onShow: function() {
    //授权
    this.getAuth()
  },
  // 获取用户授权
  getAuthorize: function (type) {
    return new Promise((resolve, reject) => {
      wx.authorize({
        scope: `scope.${type}`,
        success: () => {},
        fail: () => {
          console.log(`您未允许使用${type}权限`)
        },
        complete: () => {
          resolve()
        }
      })
    })
  },
  // 设置当前小程序需要使用的用户权限
  getAuth: async function () {
    let that = this
    try {
      //摄像头
      await that.getAuthorize("camera")
      //麦克风
      await that.getAuthorize("record")
      //地理位置
      await that.getAuthorize("userLocation")
   
      //权限校验
      wx.getSetting({
        success: res => {
          if (res.authSetting["scope.camera"] && res.authSetting["scope.record"] && res.authSetting["scope.userLocation"]) {
            console.log("授权获取成功")
          } else {
            wx.showModal({
              title: '警告',
              content: '您未完成相应授权,部分功能无法使用。完成授权后请重启小程序',
              showCancel: false,
              success: function (res) {
                if (res.confirm) {
                  wx.navigateTo({
                    url: '/pages/recordAuth/recordAuth',
                  })
                }
              }
            })
          }
        }
      })
    } catch (err) {
      console.log("设置当前小程序需要使用的用户权限err: ", err)
    }
  }
})

recordAuth.wxml 中添加按钮,引导用户打开设置页面文章来源地址https://www.toymoban.com/news/detail-698305.html

<button open-type="openSetting">授权设置</button>

到了这里,关于微信小程序授权流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序三种授权登录以及授权登录流程讲解

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《 微信小程序开发实战 》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你

    2024年02月08日
    浏览(37)
  • mpVue 微信小程序授权登录流程(即登录鉴权流程)及获取手机号一键登录教程(getPhoneNumber使用)

    微信小程序登录 鉴权流程 如下: 因 wx.getUserProfile 与 wx.getUserInfo 接口被收回了,都不能弹出授权窗口,只能使用头像昵称填写能力去获取微信用户信息。 在鉴权页面如下操作 : 1、在 onShow 中调用微信登录 wx.login 获取到唯一的code(用来获取 openid ); 2、根据 wx.login 获取的c

    2024年02月12日
    浏览(49)
  • SpringCloud微服务实战——搭建企业级开发框架:第三方登录-微信小程序授权登录流程设计和实现

      在前面的设计和实现中,我们的微服务开发平台通过JustAuth来实现第三方授权登录,通过集成公共组件,着实减少了很多工作量,大多数的第三方登录直接通过配置就可以实现。而在第三方授权登录中,微信小程序授权登录和APP微信授权登录是两种特殊的第三方授权登录

    2024年02月07日
    浏览(40)
  • UNIAPP---实现微信小程序登录授权和手机号授权(uniapp做微信小程序)

    描述:uniapp开发小程序,先授权用户信息后再出现手机号授权的页面进行手机号授权。完成后返回上一页面并把信息存入后台以及前台缓存中,方便使用。 1.在uniapp的manifest.json进行微信小程序配置 2.封装request请求api.js(如果已封装可跳过) 3.封装微信授权登录以及获取手机

    2024年02月11日
    浏览(32)
  • 微信小程序-微信授权登录

    小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系 触发授权登录 : 用户在小程序中触发登录操作,通常通过点击登录按钮或执行相关操作。 授权弹窗 : 小程序弹出授权登录的弹窗,要求用户授权小程序访问其微信账

    2024年02月08日
    浏览(36)
  • 微信小程序授权登录

    登录流程时序 说明: 1.小程序端调用  wx.login()  获取临时登录凭证code ,并回传到开发者服务器。 2.服务器调用  code2Session  接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。 之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互

    2024年02月07日
    浏览(49)
  • 微信小程序——授权登录

    在微信小程序中,授权登录通常是指用户允许小程序获取其微信用户信息(如昵称、头像等)的过程。以下是微信小程序授权登录的基本步骤以及相关API的使用: 步骤一:获取用户授权 在小程序中,你需要创建一个按钮或其他用户触发的UI元素,以触发授权登录操作。 创建

    2024年02月04日
    浏览(38)
  • uniapp(vue3) - 详解微信小程序平台用户授权登录全流程,uniapp v3版本中小程序端开发下用户点击登录后获取手机号/昵称/性别/头像等信息完成登录(提供完整示例代码,一键复制开箱即用)

    在uniapp(v3)微信小程序端开发中,超详细实现用户授权登录完整功能源码,用户授权后获取手机号/昵称/头像/性别等,提供完整思路流程及逻辑讲解。 你也可以直接复制粘贴,然后改下参数放到你的项目中去就行。 做功能之前,先

    2024年02月05日
    浏览(45)
  • 微信小程序无法出现授权框

    使用getUserInfo无法弹出授权框 1、手机上调试基础库版本应是最新的,授权弹框getUserInfo方法可能在不同版本库中存在不支持问题。 2、查看小程序官网, 发现在​2021年4月13日起,getUserInfo将不再弹出弹窗 ,并直接返回匿名的用户个人信息。也就是说 open-type 和 getuserInfo 已经不

    2024年02月12日
    浏览(60)
  • 微信小程序授权登录详细解析

    一、首先在wxml页面定义一个普通按钮,在用bindtap定义一个事件  二、去到js页面,使用wx.getUserProfile获取到用户信息,主要获取微信昵称和微信头像  三、使用wx.login获取code发送请求   四、将code、nickName、avatarUrl传入到后端  五、后端接受到code、用户头像、用户昵称  六、

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包