web PC端和移动端钉钉免登 js

16 篇文章 0 订阅
11 篇文章 1 订阅

1.首先引用两个钉钉的js

 <script type="text/javascript" src="http://g.alicdn.com/dingding/open-develop/1.6.9/dingtalk.js"></script>
    <script type="text/javascript" src="http://g.alicdn.com/dingding/dingtalk-pc-api/2.3.1/index.js"></script>

2.判断pc端还是移动端的钉钉(此例子是Vue操作,React类似)

    mounted(){
        if(DingTalkPC.ua.isDesktop&&DingTalkPC.ua.isInDingTalk){//PC端钉钉执行此方法
          let surl=window.location.href;
           $.ajax({
                method: 'post',
                url: author+'config',
                data:{
                    key:corpId,
                    url:surl
                },
                success: function(data) {
                    dd.config({
                        agentId:data.agentid, // 必填,微应用ID
                        corpId: data.corpid,//必填,企业ID
                        timeStamp: data.timestamp, // 必填,生成签名的时间戳
                        nonceStr: data.noncestr, // 必填,生成签名的随机串
                        signature: data.sign, // 必填,签名
                        type:0,   //选填,0表示微应用的jsapi,1表示服务窗的jsapi,不填默认为0。该参数从dingtalk.js的0.8.3版本开始支持
                        jsApiList : [ 'runtime.permission.requestAuthCode' ] // 必填,需要使用的jsapi列表,注意:不要带dd。
                    });
                    DingTalkPC.runtime.permission.requestAuthCode({
                        corpId: data.corpid, //企业ID
                        onSuccess: function(result) {
                             this.CodeFunc(result.code)
                            //alert(JSON.stringify(result))
                        /*{
                            code: 'hYLK98jkf0m' //string authCode
                        }*/
                        }.bind(this),
                        onFail : function(err) {}
                    })
                }.bind(this),
                error: function(jqXHR, textStatus, errorThrown) {
                    console.log(textStatus + ' ' + errorThrown);
                }
            });
        }   
        dd.ready(function(){//移动端钉钉执行此方法
            dd.runtime.permission.requestAuthCode({
                corpId:corpId,
                onSuccess: function(result) {
                  this.CodeFunc(result.code)
                /*{
                    code: 'hYLK98jkf0m' //string authCode
                }*/
                }.bind(this),
                onFail : function(err) {
                    alert(err)
                }
            });
        }.bind(this))
        )

3根据获取到的Code来获取userid

    CodeFunc(e){

             $.ajax({
                method: 'post',
                url: author+'userinfo',
                data:{
                    code:e, 
                },
                success: function(data) {
                   alert(data)
                    alert(JSON.parse(data).userid)
                }.bind(this),
                error: function(jqXHR, textStatus, errorThrown) {
                    console.log(textStatus + ' ' + errorThrown);
                }
            });
        }

4.最后根据userid来进行登录操作

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉林路扛把子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值