dd-sso
v1.0.0
Published
最好用的钉钉免登签名js库
Downloads
1
Maintainers
Readme
dd-auth-login
最好用的钉钉免登签名js库
:open_file_folder: 目录介绍
.
├── dist 编译产出代码
├── src 源代码目录
└── demo.html 示例文件
:rocket: 快速开始
1. 引入钉钉JSAPI
1.1如果你是浏览器环境
<script src="https://g.alicdn.com/dingding/dingtalk-jsapi/2.7.13/dingtalk.open.js"></script>
1.2如果你是webpack等环境
npm install dingtalk-jsapi --save
import * as dd from 'dingtalk-jsapi'; // 此方式为整体加载,也可按需进行加载
2. 引入本库
2.1如果你是浏览器环境
<script src="./dist/dd-auth-login.min.js"></script>
2.2如果你是webpack等环境
npm install dd-auth-login --save
或者
yarn add dd-auth-login
然后
import ddAuthLogin from 'dd-auth-login'
2.3如果你是requirejs环境
requirejs(['./dist/dd-auth-login.min.js'], function (res) {
// xxx
})
3. 调用 login 函数进行签名&免登
ddAuthLogin.login({
success: function(res) {
console.log('免登成功啦啦啦', res)
},
fail: function(err) {
console.log('啊哦,免登失败', err)
}
})
:bookmark_tabs: AIP文档
ddAuthLogin.isDD()
返回当前是否钉钉环境; true: 是, false: 否
ddAuthLogin.login()
签名&免登过程
传入参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 | | ----- | --- | ---- | ----- | --- | | debug | boolean | 否 | false | 是否开启 debug 模式 | | dd | object | 否 | null | 钉钉的JS SDK,由于require JS使用的问题,dd 变量没有暴露到全局,需要传入此参数 | | signUrl | string | 否 | '/data/labc-biz-dingding/dingTalk/getAuthInfo' | 请求签名地址 | | signParamName | string | 否 | 'url' | 请求签名参数名称 | | ssoUrl | string | 否 | '/data/labc-biz-dingding/dingTalk/sso' | 请求sso地址 | | ssoParamName | string | 否 | 'authCode' | 请求sso参数名称 | | jsApiList | array | 否 | 所有钉钉 API | 要签名的功能列表 | | success | function | 否 | 空 | 成功回调 | | fail | function | 否 | 空 | 失败回调 |
返回参数
| 参数名 | 类型 | 说明 | | ----- | --- | --- | | isDD | boolean | 当前是否钉钉环境 | | isLogin | boolean | 当前是否免登成功 | | msg | string | 对本次返回进行文字描述 | | content | object | 失败时的详细信息(仅在失败时返回) | | | | |
:loudspeaker: 接口说明(给后端同学看)
signUrl接口
请求类型: GET 传入参数: url = 'xxxxx(当前页面url)' 返回数据:
{
content: {
agentId: '微应用ID',
corpId: '企业ID',
timeStamp: '生成签名的时间戳',
nonceStr: '生成签名的随机串',
signature: '签名',
hasLogin: '如果已经登录,则返回true,此时不会调用sso'
},
message: '接口调用成功',
code: 200
}
ssoUrl接口
请求类型: GET 传入参数: authCode = 'xxxx(从dd.runtime.permission.requestAuthCode得到的code)' 返回数据如下:
{
content: {},
message: '接口调用成功',
code: 200
}