web免登钉钉微应用

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>
1
2
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来进行登录操作
————————————————
版权声明:本文为CSDN博主「玉林路扛把子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_29819449/article/details/80328181

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值