作者:故事我忘了
个人微信公众号:程序猿的月光宝盒

1.背景

​ 最近公司开发一个企业内部钉钉微应用,有个需求是动态获取钉钉免登陆code,之前从没玩过

百度+google了半天还是c了个有bug的(免登陆code只能用一次,且在异步函数中调用),网上的蛇皮解决方案真是让人头秃........

​ 无奈今天是deadline,无更多时间c错误代码,只能昨晚请教我的室友---全南京最强大前端架构狮丶俊俊来帮我解决这一令屎上最强全栈学习退堂鼓一号选手丶小金棘手的问题

​ 然后推导出---这就是callback最佳实践!(主题是我编的,爱你是真的)

2.技术栈

Vue.js(cli3+)整合dingtalk-jsapi

3.需求

如上所述,需要动态获取一次性的钉钉免登陆code,我采用的是安装依赖的方法

4.实现步骤

4.1 配合webpack安装对应的npm包

npm install dingtalk-jsapi

4.2 抽取获得code的js方法

import * as dd from 'dingtalk-jsapi';

export function getCode(callback) {
let corpId = '你公司的corpId';
if (dd.env.platform !== "notInDingTalk") {
dd.ready(() => {
//使用SDK 获取免登授权码
dd.runtime.permission.requestAuthCode({
corpId: corpId,
onSuccess: (info) => {
// 根据钉钉提供的api 获得code后,再次调用这个callback方法
// 由于是钉钉获取code是异步操作,不知道什么时候执行完毕
// callback 函数会等他执行完毕后在自己调用自己
callback(info.code)
},
onFail: (err) => {
alert('fail');
alert(JSON.stringify(err));
},
});
});
}
}

以上 getCode(callback){} 中的callback就是一个回调函数,稍后在使用中介绍使用方法

4.3 在需要使用code的页面中引入js文件,导入方法

4.4 在刚才的页面需要调用的方法里调用刚才导进来的js方法

注意: 所有关于code的操作都要在此 回调函数中执行

5.就提莫的结束了!!!

所以,专业的是还是交给专业的人比较好,节省时间成本,但是谁让我NP的朋友多呢~

以上~

Vue获取钉钉免登陆授权码(vue中的回调函数实践)的更多相关文章

  1. 钉钉开发入门,微应用识别用户身份,获取用户免登授权码code,获取用户userid,获取用户详细信息

    最近有个需求,在钉钉内,点击微应用,获取用户身份,根据获取到的用户身份去企业内部的用户中心做校验,校验通过,相关子系统直接登陆; 就是在获取这个用户身份的时候,网上的资料七零八落的,找的人烦躁的很,所 ...

  2. 聊一聊 Vue 中 watch 对象中的回调函数为什么不能是箭头函数?

    聊一聊 Vue 中 watch 对象中的回调函数为什么不能是箭头函数 本文重点知识点速览: Vue 中的 watch 对象中的回调函数不能是箭头函数. 箭头函数中的 this 指向的是函数定义时所在的 ...

  3. .NET平台下,钉钉微应用开发之:获取userid

    工作需求,开发钉钉微应用和小程序,之前有接触过支付宝小程序和生活号的开发,流程没有很大的差别,这里记录下我用ASP.NET MVC实现钉钉微应用的开发,并实现获取用户的userid.小弟我技术有限,本 ...

  4. 钉钉企业内部H5微应用开发

    企业内部H5微应用开发 分为 服务端API和前端API的开发,主要涉及到进入应用免登流程和JSAPI鉴权. JSAPI鉴权开发步骤: 1.创建H5微应用 登入钉钉开放平台(https://open-d ...

  5. 钉钉开发第三方H5微应用入门详细教程[ISV][免登流程][授权码][HTTP回调推送][识别用户身份][获取用户信息]

    转载请注明原文地址:https://www.cnblogs.com/applerosa/p/11509512.html (by lnexin@aliyun.com 世间草木) 此教程注意点: 适用于第 ...

  6. Java钉钉开发_02_免登授权(身份验证)(附源码)

    源码已上传GitHub: https://github.com/shirayner/DingTalk_Demo 一.本节要点 1.免登授权的流程 (1)签名校验 (2)获取code,并传到后台 (3) ...

  7. 钉钉微应用接入钉钉免登陆配置记录。NET实现

    在这里记录一下我配置的钉钉接入微应用遇到的坑.搞了我几天天才调通.头皮发麻,现在梳理一下,以免别人也入坑. 1.钉钉接入主要要获取钉钉企业员工的ID,然后去自己的应用的数据库里进行匹配然后实现免登陆的 ...

  8. Java钉钉开发_02_免登授权(身份验证)

    源码已上传GitHub: https://github.com/shirayner/DingTalk_Demo 一.本节要点 1.免登授权的流程 (1)签名校验 (2)获取code,并传到后台 (3) ...

  9. 用java实现“钉钉微应用,免登进入某H5系统首页“功能”

    一.前言 哈哈,这是我的第一篇博客. 先说一下这个小功能的具体场景: 用户登录钉钉app,点击微应用,获取当前用户的信息,与H5系统的数据库的用户信息对比,如果存在该用户,则点击后直接进入H5系统的首 ...

  10. js api 实现钉钉免登

    js api 实现钉钉免登,用于从钉钉微应用跳转到企业内部的oa,erp等,我刚刚实施完了我公司的这个功能,钉钉用起来还不错. 1 js api 实现钉钉免登,页面配置. <title>利 ...

随机推荐

  1. NumPy学习7

    今天学习了: 13, NumPy字符串处理函数 14, NumPy数学函数 15, NumPy算术运算 numpy_test7.py : import numpy as np ''' 13, NumP ...

  2. MUX-VLAN

    MUX VLAN(Multiplex VLAN)是一种高级的VLAN技术,它通过在交换机上实现二层流量隔离和灵活的网络资源控制,提供了一种更为细致的网络管理方式. 一.基本概念 MUX VLAN分为主 ...

  3. 虚拟机使用ESXi主机物理硬盘的办法

    虚拟机使用ESXi主机物理硬盘的办法 weixin_33928137 于 2018-06-19 15:22:06 发布 868 收藏 1文章标签: 运维版权 VMware Workstation的虚拟 ...

  4. 面试题-JVM性能调优

    前言 JVM性能调优是一个很大的话题,很多中小企业的业务规模受限,没有迫切的性能调优需求,但是如果不知道JVM相关的理论知识,写出来的代码或者配置的JVM参数不合理时,就会出现很严重的性能问题,到时候 ...

  5. WebKit Inside: 渲染树

    经过CSS的匹配,就要进入渲染树的构建. 渲染树也叫RenderObject树,因为渲染树上每一个节点,都是RenderObject的子类. 首先来看一下RenderObject的继承类图. 1 Re ...

  6. argo-cd基于Kubernetes的声明式持续部署

    argo-cd基于Kubernetes的声明式持续部署 什么是argo-cd? Argo CD是一个基于Kubernetes的声明式GitOps持续交付工具. 为什么CD ? 应用程序定义.配置和环境 ...

  7. 使用Python计算万有引力势能

    引言 在物理学中,万有引力是描述物体之间相互吸引的基本力之一.牛顿的万有引力定律告诉我们,任何两个物体之间都存在引力,这个引力与它们的质量和它们之间的距离有关.在这个定律中,万有引力势能是一个非常重要 ...

  8. FastMCP实践开发应用

    一.概述 FastMCP是一个基于Python的高级框架,用于构建MCP(Model Context Protocol)服务器.它能够帮助开发者以最小的代码量创建MCP服务器,从而让AI助手能够更好地 ...

  9. redis的作用:高性能和高并发

    一.高性能 假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作mysql,半天查出来一个结果,耗时600ms.但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用 ...

  10. 如何使用Nacos作为配置中心统一管理配置

    如何使用Nacos作为配置中心统一管理配置 1).引入依赖, <dependency> <groupId>com.alibaba.cloud</groupId> & ...