广告
返回顶部
首页 > 资讯 > 精选 >uniapp如何实现钉钉扫码登录
  • 370
分享到

uniapp如何实现钉钉扫码登录

2023-06-22 01:06:07 370人浏览 独家记忆
摘要

这篇文章主要为大家展示了“uniapp如何实现钉钉扫码登录”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“uniapp如何实现钉钉扫码登录”这篇文章吧。1. 用H5调起钉钉扫码登录钉钉在网页端的扫

这篇文章主要为大家展示了“uniapp如何实现钉钉扫码登录”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“uniapp如何实现钉钉扫码登录”这篇文章吧。

1. 用H5调起钉钉扫码登录

钉钉在网页端的扫码登录可参考钉钉文档:扫码登录第三方网站 - 钉钉开放平台 (dingtalk.com)

// 钉钉扫码登录    dingLoginFn() {      let dingData = {        appid: OUT_LINK_CONFIG.dingAppid,        state: "STATE",        url: encodeURIComponent('登录后的回调地址:可以是你的H5的一个页面地址(href)') // 这个地址御用钉钉扫码确认后的路由重定向(会携带扫码获取的code值)      };      let oauth = `https://oapi.dingtalk.com/connect/oauth3/sns_authorize?appid=${dingData.appid}&response_type=code&scope=snsapi_login&state=${dingData.state}&redirect_uri=${dingData.url}`;      let Goto = encodeURIComponent(oauth);      DDLogin({        id: "loginContainer", //这里需要你在自己的页面定义一个html标签并设置id,例如<div id="login_container"></div>或<span id="login_container"></span>        goto: goto,        style: "border:none;background-color:#FFFFFF;",        width: "268"      });      let handleMessage = (event) => {        // 判断是否来自ddLogin扫码事件。        if (event.origin == "Https://login.dingtalk.com" && event.data) {          console.log("loginTmpCode", event.data);          window.location.href = `${oauth}&loginTmpCode=${event.data}`; // 获取到loginTmpCode后就可以在这里构造跳转链接进行跳转了        }      };      if (typeof window.addEventListener != "undefined") {        window.addEventListener("message", handleMessage, false);      } else if (typeof window.attachEvent != "undefined") {        window.attachEvent("onmessage", handleMessage);      }    }

2. 用于路由重定向的地址最好不要是调起钉钉二维码的网页地址(步骤1的地址)

因为在uniapp中如果两个地址一样会导致回传code到登录的过程再次展示一下二维码页面才跳转到登录成功界面。路由重定向页面(本文采用Vue构建),想要在H5中使用uni的API,需要在public/index.html中引入uni的jdk

<!DOCTYPE html><html lang="">  <head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-Scalable=no" />    <!-- 引入钉钉扫码登录的JDK -->    <script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>    <title></title>  </head>  <body>    <noscript>      <strong>We're sorry but <%= htmlwebpackPlugin.options.title %> doesn't work properly without javascript enabled. Please enable it to continue.</strong>    </noscript>    <div id="app"></div>    <!-- built files will be auto injected -->  </body>  <!-- 引入uni API的JDK 注意:一定要在body后引入 在head中引入可能获取失败 -->  <script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.WEBview.1.5.2.js"></script></html>

重定向页面:

<template>  <div></div></template><script>export default {  name: "LoginCallback",  mounted() {  // 在mounted生命周期监听钉钉重定向后携带的参数并回传uniapp    document.addEventListener("plusready", () => {      this.$nextTick(() => {        // 待触发 `UniAppJSBridgeReady` 事件后,即可调用 uni 的 API。如果不是一打开页面就调用 可以不用这个监听        document.addEventListener("UniAppJSBridgeReady", () => {          // this.$toast("location.search:::", JSON.stringify(location.search));          if (location.search.includes("?code")) {            console.log("getCode:::");            let code = location.search.split("?")[1].split("&")[0].split("=")[1];       // 这里获取code后通过uni API 跳转回uniapp的页面并携带参数(uniapp中在onLoad中获取) 也可以通过uniapp提供的 uni.postMessage({data: [code]}) 去传递(注意:通过postMessage传的参数在uniap中获取的data是一个数组)            uni.webView.navigateTo({              url: `/pages/login/login_webview?code=$[code]`            });          }        });      });    });  }};</script>

3. uniapp中可以使用webview去承载钉钉扫码的网页,并接收钉钉扫码后获取的code参数 

<script>    import { dingLogin } from '@/api/login'    import { setToken } from "@/utils/auth"    export default {        name: "LoginWebview",        data() {            return {                url: 'http://xxxxxxx/dd_login' // 这里的 url 就是步骤1中写的钉钉扫码网页地址            }        },        onLoad(options) {              // 这里是扫码后回传的参数code 用于登录            if (options.code) {                this.login(options.code)            }        },        methods: {            async login(code) {                uni.showLoading()                try {                    const res = await dingLogin(code)                    if (res.data.code === 200) {                        setToken(res.data.token)                        uni.reLaunch({                            url: '/pages/home/index'                        })                    }                    uni.hideLoading()                } catch (e) {                    console.log('登录失败', e)                    uni.hideLoading()                }            }        }    }</script>

好了,大功告成!!!

如果有需要从钉钉扫码的页面返回uniapp切换登录方式的操作,可以通过uni的API跳回uniapp

uni.webView.navigateTo({    url: "/pages/login/index"});

以上是“uniapp如何实现钉钉扫码登录”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: uniapp如何实现钉钉扫码登录

本文链接: https://www.lsjlt.com/news/301817.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • uniapp如何实现钉钉扫码登录
    这篇文章主要为大家展示了“uniapp如何实现钉钉扫码登录”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“uniapp如何实现钉钉扫码登录”这篇文章吧。1. 用H5调起钉钉扫码登录钉钉在网页端的扫...
    99+
    2023-06-22
  • uniapp实现钉钉扫码登录示例代码
    由于uniapp暂无钉钉授权登录所以本文将钉钉扫码登录作为网页嵌入uniapp,最终实现钉钉扫码登录app 1. 用H5调起钉钉扫码登录 钉钉在网页端的扫码登录可参考钉钉文档:扫码登...
    99+
    2022-11-12
  • PHP-钉钉扫码登录对接第三方网站
    这个小功能对于企业内部的一些自用后台网站还是很常用的,对接也相对简单,记录下对接流程。 开发文档:扫码登录第三方网站 - 钉钉开放平台 先登录钉钉开发者后台,创建扫码登录应用授权 开发者后台统一登录 - 钉钉统一身份认证   生成登录用...
    99+
    2023-08-31
    php
  • 【钉钉免登录】使用dingtalk-jsapi将H5/小程序集成到钉钉,实现单点登录,H5/小程序免登
    【钉钉免登录】使用dingtalk-jsapi将H5/小程序集成到钉钉,实现单点登录,H5/小程序免登 一、创建H5微应用/小程序1.1、创建微应用1.2 查看配置信息1.3 配置服务器出口I...
    99+
    2023-10-22
    钉钉 小程序 前端
  • PHP如何实现扫码登录QQ
    这篇文章主要介绍“PHP如何实现扫码登录QQ”,在日常操作中,相信很多人在PHP如何实现扫码登录QQ问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP如何实现扫码登录QQ”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-04
  • 钉钉如何实现进销存
    一、钉钉进销存的实现原理 进销存是企业管理中的一个重要模块,其实现原理如下: 数据收集 进销存的数据收集主要是指企业内部各个部门、各个业务线的销售、采购、库存等数据的收集,通过各种数据采集方式将数据采集到系统中。 数据存储 进销存...
    99+
    2023-10-28
    进销存 如何实现
  • 阿里云服务器如何设置钉钉登陆密码?
    钉钉是一款非常实用的企业通讯工具,能够帮助企业实现高效的协同办公。然而,对于一些使用阿里云服务器的企业来说,如何设置钉钉的登陆密码是一个重要的问题。这篇文章将详细说明如何设置钉钉登陆密码。 详细说明:一、登陆阿里云服务器首先,你需要登录你的...
    99+
    2023-10-30
    阿里 如何设置 登陆密码
  • Python中如何实现MOOC扫码登录
    目录1、基本原理2、代码实现1、访问网站扫码登录页,并下载二维码2、模拟轮询3、弹出二维码,扫码登录4、带上token请求资源总结1、基本原理 访问网站扫码登录页,网站给浏览器返回一...
    99+
    2023-01-06
    Python实现扫码 MOOC扫码登录 Python MOOC扫码登录
  • 钉钉如何实现项目管理
    首先,我们需要在企业内部安装钉钉,并注册一个账号。然后在应用首页选择“工作台”或“项目”菜单,进入工作台页面。在这里,我们可以看到“项目”和“日程”两个选项,可以分别添加或编辑项目和日程。如果需要设置项目进度,可以点击“日程”,进入“设置”...
    99+
    2023-10-28
    项目管理 如何实现
  • 如何用钉钉实现进销存
    首先,要实现进销存管理,需要建立一个完整的ERP系统,包括进货、销售、库存管理等功能。企业可以通过钉钉进行企业内部的信息管理和流程控制,以达到提高工作效率和减少错误的目的。在钉钉上实现进销存管理,首先需要在企业内部进行推广和宣传,让员工了解...
    99+
    2023-10-28
    进销存 如何用
  • 钉钉用阿里云服务器登录不了如何解决问
    简介:钉钉作为一款企业级通讯工具,其安全性和稳定性一直备受关注。然而,有时候用户可能会遇到无法通过阿里云服务器登录钉钉的情况。本文将探讨这个问题的原因,并提供解决方案。 钉钉作为一款广泛使用的企业级通讯工具,其安全性一直受到用户的关注。然而...
    99+
    2024-01-01
    阿里 如何解决 服务器
  • Java实现微信扫码登录
    微信扫码登录 1. 授权流程说明第一步:请求 code第二步:通过 code 获取 access_token第三步:通过 access_token 调用接口 2. 授权流程代码3...
    99+
    2023-09-01
    微信 java
  • uniapp如何实现微信登录
    实现微信登录可以使用 uni.login() 方法,首先需要在微信开放平台注册小程序并获取 appid。 然后在 uni-app 项目中使用 uni.login() 方法获取 code,再通过 code 换取 openid 和 sessio...
    99+
    2023-08-16
    微信 uni-app 小程序
  • springBoot基于webSocket实现扫码登录
    最近单位又有一个新Java项目。 涉及到扫码登录。之前项目使用的是 ajax轮询的方式。感觉太low了。 所以这次用webSocket的方式进行实现 好。废话不多说!咱们开始!! 一...
    99+
    2022-11-12
  • springboot扫码登录的简单实现
    目录前言项目简介实现思路实现步骤前言 本文将介绍基于SpringBoot + Vue + Android实现的扫码登录demo的总体思路,完整代码已上传到GitHub。Web端体验地...
    99+
    2022-11-12
  • PHP怎么实现扫码登录QQ
    本教程操作环境:Windows7系统、PHP8.1版、Dell G3电脑。PHP怎么实现扫码登录QQ?分享一下,PHP实现第四方QQ微信扫码登陆,不接入qq互联以及微信开发者平台就可以实现用户对接鹅厂,phpQQ微信扫码登陆 自己抓的QQ包...
    99+
    2022-11-21
    qq php
  • python如何实现注册钉钉回调事件
    这篇文章主要介绍了python如何实现注册钉钉回调事件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。目录注册端回调端:以下示例代码为python2,django 框架钉钉AP...
    99+
    2023-06-20
  • SpringBoot实现扫码登录的示例代码
    目录一、首先咱们需要一张表二、角色都有哪些三、接口都需要哪些?四、步骤五、疯狂贴代码Spring Boot中操作WebSocket最近有个项目涉及到websocket实现扫码登录,看...
    99+
    2022-11-13
  • SpringBoot怎么实现二维码扫码登录
    本篇内容介绍了“SpringBoot怎么实现二维码扫码登录”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、手机扫二维码登录的原理二维码扫码...
    99+
    2023-07-05
  • php怎么实现微信扫码登录
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。微信已经成为我们日常生活中必不可少的一部分,为了让更多的用户更加方便地使用微信及相关产品,微信扫一扫功能越来越普遍。那么如果我们要自己实现这个功能该如何做呢?...
    99+
    2018-06-26
    php 微信
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作