飞书二维码登录注意点

news/2025/1/12 13:02:36/

1.前端SDK版本

  第一个手机端授权后、网页端还需要点击一次授权 授权后会跳转到redirect_uri页面,连接会携带code<script src="https://lf-package-cn.feishucdn.com/obj/feishu-static/lark/passport/qrcode/LarkSSOSDKWebQRCode-1.0.3.js"></script>只需要在手机上点击授权<script src="https://sf3-cn.feishucdn.com/obj/static/lark/passport/qrcode/LarkSSOSDKWebQRCode-1.0.1.js"></script> 

2. 流程是生成二维码,redirect_uri地址填写一个页面用来接收授权码,传递授权码给后端、后端再进行鉴权 返回token,redirect_uri 地址需要和后台飞书接口的redirect_uri地址保持一致

// 初始化扫码登录initQRCodeLogin() {console.log(window.QRLogin)if (window.QRLogin) {// 清空之前的二维码容器内容,防止生成多个二维码const loginContainer = document.getElementById("login_container");loginContainer.innerHTML = "";// 调起扫码var goto = `https://passport.feishu.cn/suite/passport/oauth/authorize?client_id=cli_a7b076f0a172d00c&redirect_uri=http://xxxxx/login&response_type=code&state=code`;// redirect_uriconst QRLoginObj = QRLogin({id: "login_container",goto: goto,width: "280",height: "280",style: "width:280px;height:280px;border:none"});var handleMessage = function (event) {var origin = event.origin;// 使用 matchOrigin 方法来判断 message 是否来自飞书页面if (QRLoginObj.matchOrigin(origin)) {var loginTmpCode = event.data;// 在授权页面地址上拼接上参数 tmp_code,并跳转window.location.href = `${goto}&tmp_code=${loginTmpCode}`;console.log(loginTmpCode);}};if (typeof window.addEventListener != "undefined") {window.addEventListener("message", handleMessage, false);} else if (typeof window.attachEvent != "undefined") {window.attachEvent("onmessage", handleMessage);}}},

3. 需要注意后台飞书接口“获取用户信息”版本不一样 需要的token 也不一样,

// 需要的是 USER_ACCESS_TOKEN
https://open.feishu.cn/open-apis/authen/v1/user_info
// 获取 USER_ACCESS_TOKEN 接口
https://open.feishu.cn/open-apis/authen/v2/oauth/token注意区分 tenant_access_token 和 USER_ACCESS_TOKEN
接口版本不一样 需要的token也会不一样

http://www.ppmy.cn/news/1562508.html

相关文章

k8s之pod生命周期

一.pod生命周期:pod对象从创建开始到终止的过程1.作用:复杂服务的启动顺序,依赖关系,容器服务启动前的相关操作,配置文件生成,依赖服务检测等...2.生命周期流程:初始化容器--主容器--启动后回调函数-->启动,生命,就绪探针-->关闭前回调函数初始化容器执行&#xff1a;执行…

istio-proxy内存指标

在 Istio 环境中&#xff0c;istio-proxy 是 Envoy 的边车代理容器。通过运行命令 curl localhost:15000/memory&#xff0c;或者curl localhost:15000/stats 可以查询 Envoy 的内存统计信息。以下是典型返回结果的结构和意义&#xff1a; 返回结果单位是bytes&#xff0c;需/…

PHP与ThinkPHP连接数据库示例

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

Linux下实时监测双网卡的默认网卡并重新设置默认网卡

在项目使用过程中&#xff0c;碰到了一些双网卡电脑&#xff0c;连接的两个交换机中某一交换机重启。导致通信不正常的情况。 发现是默认网卡发生变化&#xff0c;当然&#xff0c;也有可能是网络连接状态变化 首先通过命令来查看默认网卡是否发生变化 route -n然后通过写入…

Network Compression(李宏毅)机器学习 2023 Spring HW13 (Boss Baseline)

1. Introduction to Network Compression 深度学习中的网络压缩是指在保持神经网络性能的同时,减少其规模的过程。这非常重要,因为深度学习模型,尤其是用于自然语言处理或计算机视觉的大型模型,训练和部署的计算成本可能非常高。网络压缩通过降低内存占用并加快推理速度,…

el-table 合并单元格

参考文章&#xff1a;vue3.0 el-table 动态合并单元格 - flyComeOn - 博客园 <el-table :data"tableData" border empty-text"暂无数据" :header-cell-style"{ background: #f5f7fa }" class"parent-table" :span-method"obj…

pytest+allure 入门

使用allure如何生成自动化测试报​​​​​​告 &#xff1f;一文详解allure的使用 。_allure测试报告-CSDN博客 例子&#xff1a; import allure import pytest import osallure.epic("闹钟") allure.feature("闹钟增删") class TestSchedule():def setu…

一键部署Netdata系统无需公网IP轻松实现本地服务器的可视化监控

文章目录 前言1.关于Netdata2.本地部署Netdata3.使用Netdata4.cpolar内网穿透工具安装5.创建远程连接公网地址6.固定Netdata公网地址 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。…