H5专有钉钉和普通钉钉的对接流程

287 阅读1分钟
笔者最近在对接公司的h5插件,需要将普通钉钉里的插件,适配到专有钉钉,中间颇有波折,所以记录下来,以供大家参考。

普通钉钉

1.1、sso跳转页面

一般从钉钉的插件中跳转到我们的h5,需要路由中增加一个ssoRedirector页面,也就是我们的重定向页面,经过这个页面获取到钉钉的授权码后才能获取到我们后端的token,然后跳转到首页。

1.2、sso页面获取钉钉权限

获取钉钉的授权码,首先需要引入钉钉的jsapi,我们代码中引入dingtalk-jsapi。
import * as dd from "dingtalk-jsapi"//或者<script></script>引入

。。。。。。。
dd.ready(function() {
    dd.runtime.permission.requestAuthCode({
        corpId: this.corpId,//企业id
        onSuccess: function (info) {
          console.log('info', info)//info里包含code ,code就是需要的授权码
        },
        onFail: function (err) {
          reject(err)
        }
    })
})

获取到此授权码后,直接用来获取后端提供的sso接口,此接口应该返回相应的token,有了token新建一个url,将token以及其他的参数拼到链接后,然后window.location.replace(url),就完成相应的流程。

专有钉钉

专有钉钉和普通钉钉流程类似,但是在获取授权码这一块有些许不同。

2.1、专有钉钉sso页面获取钉钉权限

<script src="https://g.alicdn.com/gdt/jsapi/1.9.43/index.js"></script> //html中引入专有钉钉api ,也可以直接import

    dd.getAuthCode({ //专有钉钉直接dd.getAuthCode就行
      corpId: outThis.corpId //企业id
    }).then(info => {
      console.log('info', info)//通过code获取城管token和用户信息
      。。。。。。
    }).catch(err => {
      reject(err)
    })