首页 > 其他分享 >OAuth原理

OAuth原理

时间:2023-11-26 19:33:03浏览次数:26  
标签:令牌 门禁系统 快递 小区 授权 OAuth 原理

1. 快递员场景问题:

如何让快递员通过门禁系统进入小区送货?

①. 把自己的密码告诉快递员  =>  不太合适
   a. 拥有和我同样的权限.
   b. 我想取消他进入小区的权力  =>  自己的密码需要改,还得通知其他的快递员.

②. 让快递员能够自由进入小区
   a. 不必知道小区居民的密码.
   b. 唯一权限就是送货,其他地方需要密码的场合,他都没有权限.

(1). 授权机制的设计:

①. 门禁增加一个按钮"获取授权",快递员需要首先按这个按钮,去申请授权.

②. 按下按钮后,屋主的手机会跳出对话框"有人正在要求授权".
   a. 系统会显示快递员的姓名、工号和所属的快递公司.

③. 确认请求属实,点击按钮告诉门禁系统,同意给予他进入小区的授权.

④. 门禁系统得到确认后,向快递员显示一个进入小区的令牌(access token).
   a. 类似密码的一串数字,只在短期内(如7天)有效.

⑤. 快递员向门禁系统输入令牌,进入小区.

⑥. 疑问:为什么不远程为快递员开门,而要为他单独生成一个令牌?
   a. 因为快递员可能每天都会来送货,第二天他还可以复用这个令牌.
   b. 有的小区有多重门禁,快递员可以使用同一个令牌通过它们.

2. 互联网场景:

①. 小区:
   a. 储存用户数据的网络服务.
   b. 如:微信储存了我的好友信息,获取这些信息,必须经过微信的"门禁系统".

②. 快递员/快递公司:
   a. 第三方应用,想要穿过门禁系统,进入小区.

③. 业主:
   a. 用户本人,同意授权第三方应用进入小区,获取我的数据.

3. OAuth:

①. OAuth是一种授权机制.
   a. 数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据.
   b. 系统产生一个短期的进入令牌(token),来代替密码,供第三方应用使用.

②. OAuth 2.0是目前最流行的授权机制,用来授权第三方应用,获取用户数据.

标签:令牌,门禁系统,快递,小区,授权,OAuth,原理
From: https://blog.51cto.com/u_16237074/8571870

相关文章

  • 强引蜘蛛的原理知道那些蚂蚁SEO
    在当今的互联网时代,搜索引擎成为了人们获取信息的重要途径。而在搜索引擎中,百度一直是中国市场上占据主导地位的搜索引擎之一。百度强引蜘蛛是百度为了更好地提供搜索服务而推出的一种技术,它能够有效地提高网站的收录和排名。本文将详细介绍百度强引蜘蛛的原理。获取工具的方法:如何......
  • 深入了解Rabbit加密技术:原理、实现与应用
    一、引言在信息时代,数据安全愈发受到重视,加密技术作为保障信息安全的核心手段,得到了广泛的研究与应用。Rabbit加密技术作为一种新型加密方法,具有较高的安全性和便捷性。本文将对Rabbit加密技术进行深入探讨,分析其原理、实现及应用,以期为加密技术的研究和应用提供参考。Rabbit加密解......
  • 深入了解Rabbit加密技术:原理、实现与应用
    一、引言在信息时代,数据安全愈发受到重视,加密技术作为保障信息安全的核心手段,得到了广泛的研究与应用。Rabbit加密技术作为一种新型加密方法,具有较高的安全性和便捷性。本文将对Rabbit加密技术进行深入探讨,分析其原理、实现及应用,以期为加密技术的研究和应用提供参考。Rabbit......
  • 软件离线许可(License)实现原理
    这篇文章,之前曾经发表过,今天稍微改写一番,重新发表一下。在我们日常的开发工作中,我们会经常使用各种强大的开发软件,例如IntelliJIDEA、Navicat、VisualStudio等。然而,这些软件通常都需要付费才能正式使用。一般来说,我们需要购买一个许可证,并将其输入到软件中才能享受软件的全部......
  • 编译原理实验
       掌握了LR法进行语法分析的原理,掌握了语法分析器的设计与调试......
  • 小程序框架底层原理:一次从小到大,从简单到复杂的深度解析
    小程序框架底层原理:一次从小到大,从简单到复杂的深度解析一、小程序框架概述小程序框架,一种轻量级、可扩展的前端开发框架,广泛应用于各种业务场景。它不仅提供了丰富的组件库和API接口,还具备跨平台、低功耗、易于集成等特点。本文将从小程序框架的底层原理出发,详细阐述其核心架构......
  • webpack原理实战笔记
    我是歌谣想加入前端技术群私信我最近开始webpack原理的书写目录结构核心依赖{"name":"mywebpack","version":"1.0.0","description":"","main":"index.js","scripts":{"test"......
  • 软件测试/人工智能|AutoGPT原理与架构介绍
    简介我们生活中已经有越来越多的人工智能融入了,手机汽车等等接入了越来越多的人工智能,人工智能就像是我们的一个助手一样。不仅能够理解我们的需求,而且还能够与我们一起学习与成长。人工智能已无缝融入我们工作、生活,并帮助我们有效完成各种目标。大模型技术的发展与应用,使以上想法......
  • 软件测试/人工智能|AutoGPT原理与架构介绍
    简介我们生活中已经有越来越多的人工智能融入了,手机汽车等等接入了越来越多的人工智能,人工智能就像是我们的一个助手一样。不仅能够理解我们的需求,而且还能够与我们一起学习与成长。人工智能已无缝融入我们工作、生活,并帮助我们有效完成各种目标。大模型技术的发展与应用,使以上......
  • 10.配置优先级,bean的管理,SpringBoot原理
    配置优先级,bean的管理,SpringBoot原理配置优先级:优先级(低->高):application.ymlapplication.ymlapplication.propertiesjava系统属性(-Dxxx=xxx)命令行参数(--xxx=xxx)例子-设置springboot项目端口号:java系统属性:-Dserver.port=9000命令行参数:--server.por......