当前位置: 首页 > news >正文

【KO】前端面试三

84. 单点登录是什么,具体流程是什么【腾讯一面】

  • 单点登录(SSO,Single Sign - On)概念
    • 在多个相互信任的应用系统中,用户只需登录一次,即可访问所有信任的应用系统,无需重复登录。比如企业内部有办公系统、人事系统、财务系统等,通过 SSO ,员工登录一次就能访问这些系统。
  • 具体流程(以常见的基于令牌的 SSO 为例)
  1. 用户访问应用系统:用户首次访问某个应用系统(如系统 A ),系统 A 发现用户未登录,将用户重定向到 SSO 认证中心,并带上自身的回调地址(如 https://sso.com?redirect_uri=https://appA.com/callback )。
  2. SSO 认证中心认证
    • 若用户未在 SSO 认证中心登录,展示登录页面,用户输入用户名和密码进行登录。
    • 若用户已在 SSO 认证中心登录(可能是之前访问过其他信任应用 ),则直接进入下一步。
  3. 发放令牌:SSO 认证中心生成一个令牌(如 JWT ,包含用户身份信息、有效期等 ),将令牌通过重定向的方式带回给应用系统 A(或者通过 cookie 、localStorage 等方式传递,不同实现有差异 ),同时记录该令牌已发放。
  4. 应用系统校验令牌:应用系统 A 拿到令牌后,向 SSO 认证中心发送请求,校验令牌的合法性(如检查签名、有效期 )。校验通过后,认为用户已登录,为用户建立会话,用户可正常访问应用系统 A 的资源。
  5. 访问其他应用系统:当用户访问另一个信任的应用系统 B 时,应用系统 B 发现用户未登录,同样重定向到 SSO 认证中心。SSO 认证中心发现用户已有有效令牌,直接将令牌传递给应用系统 B ,应用系统 B 校验令牌后,为用户建立会话,用户无需再次输入密码即可访问应用系统 B 。

85. web 网页如何禁止别人移除水印【百度一面】

  • 前端层面(增加移除难度,但无法完全阻止,需配合后端等手段)
    1. 动态生成水印
      • 使用 canvas 生成水印,将水印绘制到页面的 canvasdiv(通过 background - image 等方式 )中,并且定时检查水印是否存在。如果检测到水印被移除,重新生成水印。例如:
function createWatermark() {const watermark = document.createElement('div');watermark.style.position = 'fixed';watermark.style.top = '50%';watermark.style.left = '50%';watermark.style.pointerEvents = 'none';watermark.style.opacity = '0.2';watermark.innerHTML = '水印内容';document.body.appendChild(watermark);setInterval(() => {if (!document.body.contains(watermark)) {createWatermark();}}, 1000);
}
createWatermark();
  1. 利用 MutationObserver:监听 DOM 变化,当检测到水印元素被删除或修改时,立即恢复水印。例如:
const targetNode = document.body;
const config = { childList: true, subtree: true };
const callback = function (mutationsList) {for (const mutation of mutationsList) {if (mutation.type === 'childList') {// 检查水印是否被移除,若移除则重新添加const watermark = document.querySelector('[data - watermark]');if (!watermark) {createWatermark(); }
http://www.dtcms.com/a/346768.html

相关文章:

  • GPT-5:天变了吗?还是风停了?
  • 基于Python的农作物病虫害防治网站 Python+Django+Vue.js
  • MySQL奔溃,InnoDB文件损坏修复记录
  • [2025CVPR-目标检测方向]PointSR:用于无人机视图物体检测的自正则化点监控
  • 尤弥尔传奇能够进行挂机搬砖吗?
  • AI实现超级客户端打印 支持APP 网页 小程序 调用本地客户端打印
  • 爬小红书图片软件:根据搜索关键词,采集笔记图片、正文、评论等
  • Angular初学者入门第三课——工厂函数(精品)
  • 游戏广告投放数据分析项目:拆解投放的“流量密码”
  • kail的浏览器连接不上网
  • 20250823给荣品RD-RK3588开发板刷Rockchip原厂的Buildroot【linux-5.10】时调通AP6275P的WIFI【源码部分】
  • 从 M4S 到 MP4:用 FFmpeg 轻松合并音视频文件
  • 达梦数据库统计信息收集
  • 无人机光伏巡检误检率↓79%!陌讯多模态融合算法在组件缺陷检测的落地优化
  • 【85页PPT】数字化转型LIMS大型企业智能制造之LIMS实验室管理系统产品解决方案(附下载方式)
  • webrtc弱网-SendSideBandwidthEstimation类源码分析与算法原理
  • 使用dism++备份系统时,出现“句柄无效”错误的解决方法
  • 重构实训生态:旅游管理虚拟仿真实训室的标准落地与价值创新
  • 某电器5G智慧工厂网络建设全解析
  • 【ABAP4】创建Package
  • 数字经济、全球化与5G催生域名新价值的逻辑与实践路径
  • Autosar CAN开发06(CAN通讯开发需求-CAN矩阵)
  • 突破传统文本切片的瓶颈:AntSK-FileChunk语义切片技术详解前言:为什么我们需要重新思考文本切片?
  • RHCSA--命令(二)
  • 一种通过模板输出Docx的方法
  • Agent Lightning:让任何AI智能体通过强化学习实现高效训练
  • 简单介绍计算机的工作过程
  • 深入理解 Linux 系统文件 I/O:从 open 到重定向的底层逻辑》
  • 力扣热题之技巧
  • 云计算核心技术之云网络技术