说明
“免登”是指用户进入应用后,无需输入钉钉用户名和密码,应用程序可自动获取当前用户身份,进而登录系统的流程。uni-app 已经兼容了钉钉小程序的部分API(兼容多少不清楚,没找到官方文档), 我们以此实现钉钉小程序内的免登录。
1、获取小程序免登授权码
文档地址:https://ding-doc.dingtalk.com/doc#/dev/wcoaey
企业应用和个人应用的免登授权码均可通过该JSAPI获取。
uni.getAuthCode({
success:function(res){
/*{
authCode: 'hYLK98jkf0m' //string authCode
}*/
},
fail:function(err){
}
});
返回说明:
参数 | 说明 |
---|---|
authCode | 授权码,有效期5分钟,且只能使用一次 |
2、最终伪代码如下:
<script>
export default {
data() {
return {
}
},
onLoad() {
// 自动登录
// #ifdef MP-WEIXIN
//this.loginThirdpaty("weixin");
// #endif
// #ifdef MP-ALIPAY && MP-DINGTALK
this.loginThirdpaty("dingtalk");
// #endif
},
methods: {
// 第三方平台登录
loginThirdpaty(provider){
var that = this
// 钉钉登录
if('dingtalk' == provider ){
that.loadModal = true
uni.getAuthCode({
success:function(res){
/*{
authCode: 'hYLK98jkf0m' //string authCode
}*/
console.log(res)
let authCode = res.authCode;
// 和后台进行交互完成免登录
that.loadModal = false;
},
fail:function(err){
that.loadModal = false;
}
});
}
else if('weixin' == provider ){
that.loadModal = true;
uni.login({
provider:'weixin',
success(loginRes) {
let js_code = loginRes.code;
// 和后台进行交互完成免登录
that.loadModal = false;
},
fail:function(err){
that.loadModal = false;
}
})
}
}
}
}
</script>
作者:Jeebiz 创建时间:2023-02-25 01:30
最后编辑:Jeebiz 更新时间:2023-02-25 01:45
最后编辑:Jeebiz 更新时间:2023-02-25 01:45