小程序开放平台

文档中心
起步
目录
配置小组件
小组件框架
小组件运行时
自定义组件
基础能力
开放能力
授权
小组件登录
开放数据校验与解密
分享
转发
场景值
性能优化

授权

开发
>
指南
>
开放能力
>
授权
>
更新时间:2025-08-04 15:19:11

部分接口需要经过用户授权同意才能调用。我们把这些接口按使用范围分成多个

scope
,用户选择对
scope
来进行授权,当授权给一个
scope
之后,其对应的所有接口都可以直接使用。

获取用户授权设置

开发者可以使用 xhs.getSetting 获取用户当前的授权状态。

打开设置界面

用户可以在小组件设置界面(「右上角」 - 「关于」 - 「右上角」 - 「设置」)中控制对该小组件的授权状态。

开发者可以调用 xhs.openSetting 打开设置界面,引导用户开启授权。

提前发起授权请求

开发者可以使用 xhs.authorize 在调用需授权 API 之前,提前向用户发起授权请求。

scope 列表

scope
对应接口
描述
scope.userInfoxhs.getUserInfo用户信息
scope.userLocationxhs.getLocation, xhs.chooseLocation地理位置
scope.userLocationBackgroundxhs.startLocationUpdateBackground后台定位
scope.writePhotosAlbumxhs.saveImageToPhotosAlbum保存到相册
scope.cameraxhs.scanCode摄像头

授权有效期

一旦用户明确同意或拒绝过授权,其授权关系会记录在后台,下次打开,依然沿用之前的授权记录。

最佳实践

  • 在真正需要使用授权接口时,才向用户发起授权申请,并在授权申请中说明清楚要使用该功能的理由。
  • 交易主链路中,避免多次授权,打断用户。
  • 交易主链路中,用户拒绝授权,不应打断主链路。
  • 服务商场景下,按照一号一店一小组件进行授权,小组件间授权不允许打通。

注意事项

  1. xhs.authorize({scope: "scope.userInfo"})
    ,不会弹出授权窗口,请使用
    <button open-type="getUserInfo"/>
  2. 需要授权 scope.userLocation、scope.userLocationBackground 时必须配置地理位置用途说明