易盾一键登录 H5 微信小程序集成文档

2024.06.18 15:07:36

    此文档将会介绍易盾一键登录(NEOneLogin)SDK 如何集成到微信小程序。

    1. 下载开发工具

    微信小程序的开发需要使用『微信开发者工具』,下载地址为:

    https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html

    请根据开发电脑的系统进行下载。

    2. 登录

    安装完成后打开『微信开发者工具』,扫描二维码进行登录:

    3. 创建微信小程序

    点击 + 后开始创建小程序,AppID 可以先使用测试号的,也可以在 开发者后台 - 开发管理 - 开发设置 找到自己账号下的 AppID。

    4. 创建集成 web-view 组件的页面

    双击打开我们新建的 one-login-demo 后,在 pages/ 文件夹下新建文件夹 one-login,再右键该目录选择『新建 Page』,名称与目录相同。

    one-login.wxml 下写入以下代码:

    <view class="container">
      <web-view src="https://your-one-login-h5"></web-view>
    </view>
    

    web-view 组件的 src 引入的是我们已经部署好的一个静态页面地址,该页面就是我们常规接入一键登录(NEOneLogin)SDK 的页面。

    小程序关于 web-view 组件的使用,可以参考微信官方文档:web-view

    作为测试,您可以先使用这个测试地址 https://yidunfe.nosdn.127.net/statics/one-login-h5-demo/0.1.1/index.html 替换上述的地址。

    你可以下载上述测试地址所对应的 SDK 接入 demo,包括了 SDK 的常规接入配置以及和微信小程序通信的代码逻辑,可做参考: one-login-demo.zip

    5. 不检验 web-view 的业务域名

    为了快速看到接入效果,暂时不需要配置业务域名,点击右上角详情按钮将本地设置中的 不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书 勾选上。

    6. 跳转至一键登录验证页面

    现在我们有了一个嵌套了 web-view 的页面,接着需要一个跳转到该页面的按钮,简单地在 index.wxml 即主页写一个按钮:

    <view class="usermotto">
      <button bindtap="startOneLogin">一键登录</button>
    </view>
    

    绑定了 startOneLogin 点击事件,接着在 index.js 中添加以下事件代码:

    startOneLogin() {
      wx.navigateTo({
        url: '../one-login/one-login'
      })
    },
    

    点击一键登录按钮即可跳转到web-view页面了,也就是我们写的一键登录h5 demo。

    如果要在手机上预览,可点击上方的预览按钮,可通过二维码或自动预览的方式。另外,手机端打开后,要打开开发模式,重新进入小程序,不然会提示无法预览web-view内容。

    7. 获取token和accessToken进行二次校验

    在一键登录h5 demo页面中,用户输入正确号码点击登录后会返回一个tokenaccessToken,用于和服务端进行二次校验,所以在小程序中我们需要拿到这个值。

    在h5中通过微信开放的JSSDK能力,使用了以下API跳转到小程序特定的页面verify/verify

    // 跳转至微信小程序二次检验页面
    window.wx.miniProgram.redirectTo({ url: `/pages/verify/verify?from=h5&event=${eventName}&token=${token}&accessToken=${accessToken}` })
    

    在小程序的 pages 文件夹下新建 verify 文件夹,再右键该目录选择『新建 Page』,输入名称为 verify

    打开 verify.js 找到生命周期函数 onLoad,写入以下代码:

    onLoad(options) {
      const { from, event, token, accessToken } = options
      if (from === 'h5' && event === 'verify') {
        // 这里拿到 data 即是 h5 传递过来的 token 和 accessToken,现在可以与服务端通信进行二次检验了
        const params = {
          token,
          accessToken
          // other params
        }
        // ajax('/api/verify', params)
      }
    },
    

    同理还有点击登录后验证失败的情况,还需要一个失败页面,新建的方法和上面一致,测试用的 H5 跳转小程序特定页面为:

    // 跳转至微信小程校验未通过页面
    window.wx.miniProgram.redirectTo({ url: `/pages/unpass/unpass?from=h5&event=${eventName}` })
    

    这两个页面的逻辑完全由你自己决定,这里只是做一个简单的演示。

    8. 配置业务域名

    上面的步骤用于本地开发时快速测试,所以我们暂时勾选了 不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书,如果现在要上线的话,我们还需要做以下工作:

    1. 部署你的一键登录 h5 项目,url 的协议必须为 https。

    我们自己开发了接入了一键登录 SDK 的页面,部署上线后的 url 替换 web-view 中的 src 的值,比如上述测试地址 https://yidunfe.nosdn.127.net/statics/one-login-h5-demo/0.1.1/index.html

    2. 配置 web-view 组件支持的业务域名

    与找到 AppID 的地方一样,开发者后台 - 开发管理 - 开发设置,滚动到页面下方能找到 业务域名,点击 修改:

    总共要配置两个域名:

    1. https://yidunfe.nosdn.127.net 是你自己开发的一键登录页面域名,请修改为你部署的页面域名;
    2. https://ye.dun.163yun.com 是一键登录唤起的授权页的域名,这个域名是易盾的,必须添加,不然无法唤起授权页。

    点击下载校验文件,将该文件放置在你部署的一键登录页面的域名根目录下。

    同理,还要将该文件发送给易盾的技术支持,因为 https://ye.dun.163yun.com 域名根目录下也要放置该文件

    资源

    1. one-login-demo.zip 2. 微信小程序完整示例.zip

    Online Chat Tel:95163223 Free trial