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

news/2024/7/10 1:17:31 标签: 钉钉免登, js, vue, react

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

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

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

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

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

js javascript">    CodeFunc(e){

             $.ajax({
                method: js-string">'post',
                url: author+js-string">'userinfo',
                data:{
                    code:e, 
                },
                success: js-function">js-keyword">functionjs-params">(data) {
                   alert(data)
                    alert(js-built_in">JSON.parse(data).userid)
                }.bind(js-keyword">this),
                error: js-function">js-keyword">functionjs-params">(jqXHR, textStatus, errorThrown) {
                    console.log(textStatus + js-string">' ' + errorThrown);
                }
            });
        }

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


http://www.niftyadmin.cn/n/1409523.html

相关文章

Ehcache是现在最流行的纯Java开源缓存框架

Ehcache是现在最流行的纯Java开源缓存框架&#xff0c;配置简单、结构清晰、功能强大&#xff0c;最初知道它&#xff0c;是从Hibernate的缓存开始的。网上中文的EhCache材料以简单介绍和配置方法居多&#xff0c;如果你有这方面的问题&#xff0c;请自行google&#xff1b;对于…

设计模式-状态模式(25)

定义 状态模式(State Pattern)又称为状态对象模式&#xff0c;该模式允许一个对象在其内部状态改变的时候改变行为。 英文&#xff1a;Allow an object to alert its behavior when its internal state changes.The object will appear to change its class. 翻译&#xff1a;允…

react 修改state为对象中的某一个属性值

针对state为对象,想要修改对象中某一个值而不修改其他值,请欣赏接下来的方法 以前写法 1.设置state对象 state{datavalue:{slid:,name:,memo:,version:,icon:defaultimg,loginlink:,key:,support_game:[],noticelink:,contact:{key:-1,label:},group:{key:,label:},},}2 修改s…

python找到字符中空格所在的位置_Python查找字符在字符串中出现的所有位置

题目出自PTA python编程题3-3 输出字母在字符串中位置索引&#xff1a; 题目&#xff1a;输入一个字符串&#xff0c;再输入两个字符&#xff0c;求这两个字符在字符串中的索引。 输入格式: 第一行输入字符串 第二行输入两个字符&#xff0c;用空格分开。 输出格式: 反向输出字…

ehCache详解

Ehcache中不仅可以用配置文件来配置缓存&#xff0c;而在代码中也可以实现同样的功能。 CacheManager singletonManager CacheManager.create(); Cache memoryOnlyCache new Cache(“testCache”, 50000, false, false, 8, 2); Cache test singletonManager.getCache(“t…

react Antd中使用Tabs组件点击头部,只更新一次问题

在使用tabs使用子模块中数据请求只执行第一次点击该头部时候,后面多次返回之后执行数据无效等问题 可以通过ref对子模块方法进行调用 MenuTab(e)>{console.log(e);this.setState({tabDeafult:e})window.sessionStorage.setItem("rid",e);setTimeout(() > {th…

redis 哨兵_Spring集成Redis哨兵配置

什么是哨兵Sentinel&#xff08;哨兵&#xff09;是用于监控Redis集群中Master状态工具&#xff0c;可以监视一个或者多个redis master服务&#xff0c;以及这些master服务的所有从服务&#xff1b;当某个master服务宕机后&#xff0c;会把这个master下的某个服务升级为master来…

TortoiseGit自动记住用户名密码的方法

windows下比较比较好用的git客户端有2种&#xff1a; 1. msysgit TortoiseGit(乌龟git) 2. GitHub for Windows github的windows版也用过一段时间&#xff0c;但还是不太习惯。所以目前仍然青睐与msysgit乌龟git的组合。 TortoiseGit在提交时总数会提示你输入用户名密码&#…