公益统一登录插件

更新日志

2023-04-24

  1. 插件更新-增加 env 参数来区分后台环境接口 版本号1.2.0

2023-02-14

  1. 插件发布-正式环境接口 版本号1.1.0

2023-02-13

  1. 插件发布-测试环境接口 版本号1.0.3
  2. 插件发布-预发布环境接口 版本号1.0.4

2022-12-7

  1. 增加同主体小程序静默登录方式,详见 使用插件 -> 静默登录

1. 添加插件

在使用插件前,首先要在小程序管理后台的“设置-第三方服务-插件管理”中添加插件。开发者可登录小程序管理后台,通过 appid 查找插件 wxece4146e22efa8f1 并添加。

点击申请后请联系 @christyma 审核,通过后可在小程序中使用登录插件。

登录插件提供两种使用方式,可根据小程序主体和业务需求自行选择

  1. 静默登录: 内部使用,需要和腾讯公益在同一主体下,并关联在同一开放平台账号下。静默登录无需跳转用户信息功能页授权,可以直接获取到 code;
  2. 普通登录: 无主体限制。 需要放置登录按钮引导用户点击,跳转至用户信息功能页授权成功后可获取到 code

2. 引用插件

全局声明

使用插件前,使用者要在 app.json 中声明插件,代码示例:

"plugins": {
  "GYLogin": {
    "version": "1.0.0",
    "provider": "wxece4146e22efa8f1"
  }
}

其中 version 是使用插件的版本号,在开发阶段可以使用开发版本的插件联调,版本号格式为 dev-xxxxxxxxx,需联系 @christyma 获取

引入插件的自定义组件(静默登录)

在需要调用登录的页面引入插件 GYLogin

const GYLogin = requirePlugin("GYLogin");

引入插件的自定义组件(普通登录)

使用插件提供的自定义组件,和 使用普通自定义组件 的方式相仿。在页面的 json 文件定义需要引入的自定义组件时,使用 plugin:// 协议指明插件的引用名和自定义组件名,代码示例:

"gy-login": "plugin://GYLogin/gy-login"

3. 使用插件

1> 静默登录

静默登录必须是同一主体且绑定过,否则会调用失败

调用 GYLogin 登录

使用者小程序需要在页面初始化时调用 wx.login 获取 code,传参给 GYLogin

wx.login({
  success: (res) => {
    const code = res.code;
    const appid = "xxxxxx";
    GYLogin.login(appid, code, env).then(
      (res) => {
        // res 为登录成功的 code
        console.log("登录成功", res);
      },
      (err) => {
        console.log("登录失败", err);
      }
    );
  },
});

请求参数:

参数 必填 说明
appid 登录的目标应用 appid
code wx.login 获取到的 code
env test (测试环境), pre (预发布环境), release (正式环境), 不填或填错默认为正式环境

登录成功后可以通过 code 换取 access_token 来获取用户登录授权 token

2> 普通登录

组件 gy-login 内部插槽放置登录按钮

插件内部会判断用户是否授权过用户信息页,未授权的新用户会展示放置的登录按钮,授权过且在 30 天内的,则不会展示。

<gy-login
  code="{{ code }}"
  appid="{{ appid }}"
  wx:if="{{ code }}"
  bindsuccess="loginSuccess"
  bindfail="loginFail"
>
  <!-- 这里放置你的登录按钮 -->
  <!-- 例如: <button>Login</button> -->
</gy-login>

请求参数:

参数 必填 说明
code wx.login 获取到的 code
appid 登录的目标应用 appid
bindsuccess 成功回调
bindfail 失败回调

使用者小程序需要在页面初始化时调用 wx.login 获取 code,传给 gy-login 组件

wx.login({
  success: (res) => {
    const code = res.code;
    this.setData({
      code: res.code,
    });
  },
});

组件登录之后有成功回调 bindsuccess 和失败回调 bindfail,使用者小程序可以自行处理登录之后的业务逻辑

loginSuccess(e){
  console.log('插件返回的code:', e.detail)
},
loginFail(e){
  console.log('插件登录失败:', e.detail)
},

bindsuccess 返回的 e.detail 为登录成功的 code ,可以通过 code 换取 access_token 来获取用户登录授权 token

普通登录插件内部逻辑

新用户首次登录

  1. 显示 gy-login 内部插槽按钮,用户点击 Login 按钮之后跳转至 用户信息功能页 进行授权

  2. 点击 允许使用 后,会返回使用者小程序页面,login 按钮自动隐藏,并返回 code

老用户授权过,再次登录

  1. 不显示 gy-login 内部插槽按钮, 直接返回code

老用户授权过期

  1. 流程同新用户一致
© 1998 - 2022 Tencent Inc. all right reserved,powered by tencent.更新时间: 2025-03-06 17:00:45

results matching ""

    No results matching ""

    results matching ""

      No results matching ""