流程图

由于很多人问这个,发现并不是代码问题,都是流程不清楚导致,遂补一个流程图

如图所示:

官网文档:

扫码登陆第三方网站

代码如下:
//在public/index.html引入钉钉js
//需注意如果报错DDLogin未定义,需要将此代码放入head中或者body中,放在body-html标签之间有些项目会报错。
<script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
//html
// id必写,style是为了调整二维码大小,二维码官方固定尺寸,只好出此下策。
<div id="login_container" style="transform: scale(.8);"></div>
//在这里插入代码片
mounted(){//code是登录所需最终参数const { code } = this.$route.queryif(code){ //登录接口this.handleCodeLogin(code)}else{ //钉钉二维码this.ddLoginInit()}
},
methods: {ddLoginInit(){//钉钉扫码流程:扫码成功登录后会自动跳到这个url页面,url路径会携带code,你拿到这个code,调用登录接口成功就跳转。//你的项目页面let url = encodeURIComponent('http://baidu.com.cn/weekly/#/login');// appid 找后端要let appid = 'dingappid'// 钉钉自己的url 修改上面俩,不需要动这个let goto = encodeURIComponent(`https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=${appid}&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=${url}`)let obj = DDLogin({id:"login_container",//这里需要你在自己的页面定义一个HTML标签并设置id,例如<div id="login_container"></div>或<span id="login_container"></span>goto: goto, //请参考注释里的方式style: "border:none;background-color:#FFFFFF;",width : "100%",//官方参数 365height: "300"//官方参数 400});let handleMessage =  (event) =>{let origin = event.origin;console.log("origin", event.origin);if( origin == "https://login.dingtalk.com" ) { //判断是否来自ddLogin扫码事件。let loginTmpCode = event.data; //获取到loginTmpCode后就可以在这里构造跳转链接进行跳转了console.log("loginTmpCode", loginTmpCode);//此步拿到临时loginTmpCode换取正式codewindow.location.href = `https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=${appid}&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=${url}&loginTmpCode=${loginTmpCode}`}};if (typeof window.addEventListener != 'undefined') {window.addEventListener('message', handleMessage, false);} else if (typeof window.attachEvent != 'undefined') {window.attachEvent('onmessage', handleMessage);}},handleCodeLogin(code){this.$store.dispatch('user/codeLogin', {authCode:code}).then((res) => {//到这里就成功了直接路由跳转,下面是我个人逻辑this.$router.push( '/index')//this.$store.dispatch('user/getMenuList').then(() => {// if(res.instType == 0){//  this.$router.push( '/queryWeekly')// }else{//  this.$router.push( '/addWeekly')// }// this.loading = false//})}).catch(() => {this.$router.push( '/')this.loading = false})},
}

备注: 阴晴不定,小雨连绵;春困夏乏秋打盹,睡不醒的冬三月。

vue实现钉钉扫码登录相关推荐

  1. vue实现pc端扫码登录

    vue pc端微信扫码登录 文章目录 vue pc端微信扫码登录 效果图 方式一:npm 安装并引入插件 参数说明 使用 自定义样式 方式二:通过js 引用js文件 vue 使用 注意 效果图 方式一 ...

  2. Vue 实现企业微信扫码登录

    前端 Vue 实现企业微信扫码登录 需求:公司用的企业微信,PC 端的管理后台,想通过企业微信扫码登录.相比传统的账号密码方便很多. 企业微信扫码登录流程文档:(链接) 对于前端来说,重要的是如何构造 ...

  3. 钉钉开发系列(十一)钉钉网页扫码登录

    在<钉钉开发系列(八)二维码扫描登录的实现>介绍了一种扫码登录的方式,该方式是自己产生二维码,二维码中的URL指到自身的服务器页面,在该页面中以JSSDK的方式来获取钉钉用户的信息.钉钉官 ...

  4. Vue前端实现微信扫码登录

    微信登录两种实现方法: 说在前面:由于微信的限制不得不将vue的路由模式切换为history模式. 第一种: 后端实现二维码,将二维码的跳转链接返回前端,并且传一个state给前端做标识,前端需要点击 ...

  5. vue PC端微信扫码登录

    我用的element,要是在弹窗里面使用,还是用自定义弹窗比较好,据说用官方的el-dialog会出不来.上代码: 在index.html页面里面引入对应的脚本 <script src=&quo ...

  6. 钉钉扫码登录cs架构,winform设计钉钉扫码客户端

    先上效果图 下面开始流程: 准备工作 你需要一个注册钉钉的账号,以获取APPID: 你还需要你要登录的第三方网站的网址,以及一张网站logo图片的地址: 具体步骤: 1.注册成功后,登录,进行如下四步 ...

  7. 一篇文章,带你了解微信扫码登录

    文章目录 前言 一.功能背景 二.扫码登录原理 1.基本原理 三.实现效果图 1.登录页 2.点击微信账号登录 3.已绑定微信的账号 4.未绑定微信号的账号 四.代码实现 1.准备工作 2.编写代码 ...

  8. 扫码登录(uniappvue)

    扫码登录(uniapp&&vue) 手机 app 扫码登录网站 用户打开web端网页,进入扫码登录的界面: 从web端服务器获取二维码的唯一标识,用于表示该二维码所对应的用户,方便后面 ...

  9. AbpVnext 扩展企业微信扫码登录(钉钉登陆、短信登陆、微信登陆等)Vue框架

    目录 1.开始开发准备 1.1 企业微信扫码登陆接入流程 1.2 开启网页授权登陆 1.3 构造独立窗口登陆二维码 1.4 构造内嵌登陆二维码 @@登陆顺序: 1. 发现文档配置 2. 获取token ...

  10. vue实现钉钉扫码登录第三方网站

    (1)### 登录钉钉开放平台,进入应用开发页面,此页面需要管理员开放权限才能进入 (2)### 点击[创建应用],圈出的三部分填写完之后点击[确定创建] (3)### 切换到新版,钉钉登录与分享中填 ...

最新文章

  1. 【BZOJ3963】[WF2011]MachineWorks cdq分治+斜率优化
  2. Hibernate之性能优化
  3. [jvm]运行时数据区域详解
  4. 为什么要使用Elasticsearch?
  5. VSCode配置PyQt5和designer
  6. udhcp源码详解(二)--转
  7. 并查集应用——PAT甲级2019春季
  8. solidworks迈迪设计宝_机械入门|那些看起来很牛X的机械结构,是如何设计的?...
  9. 超标量、超流水、超线程
  10. 关于学历与面试的一些看法
  11. python解压zip到当前目录_Python 解压缩Zip和Rar文件到指定目录
  12. 安装CAD显示计算机丢失SETUPUI,彻底解决CAD2012不能安装问题.docx
  13. python网课培训班学费一般多少
  14. int为什么是-32768到32767
  15. Mysql explain 执行计划 解释
  16. 2017年中国网络安全报告
  17. 矩阵微分与向量函数Taylor展开
  18. 机器学习——决策树(ID3)的实现
  19. netgen.5.0.0下载地址与Windows下编译方法
  20. 【TUN模式】对QQ或者微信域名、QQ邮箱、微信公众号文章、微信开发者社区相关的网站访问非常慢、图片加载不出来、网页空白的解决方案

热门文章

  1. Python之Python3本地安装教程
  2. 计算机中数据存储--ASCII码
  3. 《研磨设计模式》读书笔记之:适配器模式、单例模式
  4. 控制台打印vue实例
  5. SOLIDWORDS API修改零部件属性全部保存
  6. 经典伴读_java8实战_一网打尽
  7. 高等代数_第2章:证明_Laplace定理
  8. oracle数据库菜鸟入门
  9. github 思维导图开元软件_最强大脑!这 7 款开源思维导图工具真的很神奇
  10. SAP MM T-Code