uCOS-III 应用开发指南—基于 STM32F103系列

2023-05-16

uCOS-III 应用开发指南—基于 STM32F103系列

嵌入式经典教材

【实例截图】

在这里插入图片描述
文件:590m.com/f/25127180-490253580-defdec(访问密码:551685)

以下内容无关:

-------------------------------------------分割线---------------------------------------------

没看之前以为OAuth2.0是登录认证授权的东西,自己的项目里应该是需要的。实际上OAuth是为了第三方应用访问我们资源用的,大多数开发者基本不会用到这个东西。对于自己应用的认证授权,还是基于拦截器的token,SpringSecurity即可。只有做平台级别,像微信,微博,github这种级别才会用到。而真到那个时候,再看也行,也通常不会是你来做。简而言之,非必须。

接下来,我将从几个方面了解和学习使用OAuth2.0。对不对就不管了,反正我也几乎不会用到。ps.有个项目用到了,所以才会有本文。

OAuth2.0介绍和功能
微信开放平台和github的OAuth2.0接入应用
自己写一个OAuth2.0服务
Springboot OAuth2.0集成
快速了解OAuth2.0
资源很多,看起来比较麻烦,可以直接看Authorization Code授权码流程,以微信登录为例子的介绍。

OAuth2.0是什么
官方介绍是: OAuth 2.0授权框架允许第三方应用程序通过协调资源所有者和HTTP服务之间的审批交互,或允许第三方应用程序自己获得访问权限,从而获得对HTTP服务的有限访问。也就是授权别人(client)访问我们的资源。

The OAuth 2.0 authorization framework enables a third-party
application to obtain limited access to an HTTP service, either on
behalf of a resource owner by orchestrating an approval interaction
between the resource owner and the HTTP service, or by allowing the
third-party application to obtain access on its own behalf. This
specification replaces and obsoletes the OAuth 1.0 protocol described
in RFC 5849.

别人(client)是什么?

登录石墨文档可以输入账号密码登录,也可以选择微信登录,微信扫码确认后,就登录了石墨文档。石墨文档通过微信认证的方式实现了自身的认证登录。这个石墨文档就是client的角色(Role)。

什么时候需要让别人(client)访问我们的资源?

最常见的是微信授权登录,对client来说,是用户授权client拿到用户在微信上的信息,比如性别,唯一id。

我们怎么才能做到授权给别人访问我们的资源?

我们自己怎么获取自己的资源?我们登录后就可以获取到自己的账号信息等资源了。那么怎么给到别人?直接把我们的账号密码给第三者太不安全了。一个是自己的账号密码存在泄露的风险,一个是自己的账号权限太大,万一被别人删除了或者看到了不该看到的东西怎么办。在使用阿里云的时候,我们可以给自己的账号开子账号,给子账号一些权限访问哪些服务(授权太复杂了),这样我们就可以达到最初的目的了: 让别人安全的访问我们的资源。

OAuth通过引入授权层并将client的角色与资源所有者的角色分离, 并且给client单独的凭证(access_token),client通过access_token获取有限的资源。

OAuth2.0定义的角色
resource owner
资源的拥有者,通常就是用户,比如登录的用户。

resource server
资源服务,提供资源的服务。需要access_token才允许被调用。比如微信api,通过access_token调用它可以获取到用户的性别等信息。

client
客户端,第三方客户端,被授权访问的应用。比如石墨文档通过微信登录的时候,石墨文档就是client角色,它要用户授权获取用户微信的信息。

authorization server
资源认证授权服务。用户登录到本服务后,可以选择授权给第三方。比如微信登录,微信认证服务就是authorization server的角色。可以颁发给client code,可以通过code换取access token. 可以通过access_token认证用户。

乍一看可能有点迷乱。站在登录用户的角度,简单的分为3个阵营: 用户本身(resource owner), 用户要登录的应用(client), 用户的资源(resource server and authrization server). authorization server和resource server是一体的,一家的,比如都是微信的。这样清晰一些。只是对于微信内部,个人信息,朋友圈,公众号,小程序啥的,资源挺多,相当于多个resource server, 内部就分成了authorization server和多个resource server.

搞清楚这里面的角色后,再来看协议的流程。

OAuth2.0的协议流程
整体抽象协议流程如下。

A: client找用户(resource owner)请求授权,说你得让我获取你的微信昵称. 然后用户就看到微信授权页面(authorization server)显示是否允许client获取昵称。
B: 用户点确认,微信就会给client一个临时授权code。
C: client拿着上一步得到的授权code去找authorization server换一个access_token.
D: authorization server认证了client的参数,确认后,给client返回access_token.
E: client拿access_token去获取信息,比如获取用户昵称,头像。
F: client如愿以偿。
直接看上面的图,看到B和C都特么叫Authorization Grant, 授权发放。一会儿用户给client发放,一会儿client又找authorization发放,这是要哪样。我当年就是看了无数次这个图没看懂。接着,一般的文章又会介绍OAuth2.0的4种授权方式,结合上图的授权,就会非常容易混淆,看不懂了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uCOS-III 应用开发指南—基于 STM32F103系列 的相关文章

  • C# 界面开发-登陆窗体(包括欢迎界面)

    我们在开发一个需要身份验证系统软件的时候 xff0c 一个必不可少的界面便是登陆界面 xff0c 只有我们在登陆界面中输入正确的用户名和密码 xff0c 才能登陆到主界面 xff0c 有时候可能还会加载系统资源 xff0c 所以还会增加一个
  • ROS系统中编写多个C++文件时,主文件调用其它文件函数或类时出现:对“xxxxxx“未定义的引用问题记录

    问题描述 主文件对其它文件内容调用时 xff0c 明明已经正确引用相关头文件 xff0c 并确保类和函数已被定义 xff0c 仍然出现下面问题 CMakeFiles span class token operator span robot
  • 使用sklearn学习决策树(Decision Tree)

    决策树模型 决策树 xff08 decision tree xff09 是一种基本的分类与回归方法 分类决策树模型是一种描述对实例进行分类的树形结构 决策树由结点 xff08 node xff09 和有向边 xff08 directed e
  • CTeX安装及使用

    1 关于 LaTeX和CTeX quad LaTeX是一种基于 的排版系统 xff0c 由美国计算机学家莱斯利 兰伯特 xff08 Leslie Lamport xff09 在20世纪80年代初期开发 xff0c 利用这种格式 xff0c
  • 深度强化学习(7)深度确定性策略梯度(DDPG)

    深度确定性策略梯度 xff08 DDPG xff09 1 从随机策略到确定性策略 首先 xff0c 我们先了解一下随机策略和确定性策略 随机策略的公式为 xff1a a
  • 强化学习(1)马尔科夫决策过程(MDP)

    强化学习 开始强化学习之前先来了解强化学习 深度学习 深度强化学习 监督学习 无监督学习 机器学习和人工智能之间的关系 如下图 xff1a 强化学习是机器学习的一个重要分支 xff0c 它试图解决决策优化的问题 所谓决策优化 xff0c 是
  • 深度强化学习(3)Prioritized Replay DQN

    Prioritized Replay DQN 在深度强化学习 xff08 2 xff09 Double DQN 中 xff0c 我们讲到了DDQN使用两个Q网络 xff0c 用当前Q网络计算最大Q值对应的动作 xff0c 用目标Q网络计算这
  • 封装使用axios进行接口请求

    一 安装axios npm install axios在main js引入 import axios from 34 axios 34 Vue use axios vue3使用createApp App config globalPrope
  • VMware+Ubuntu20.04安装指南

    1 首先下载VMware Workstation Player 16 xff0c 下载链接为 https customerconnect vmware com en downloads all products 2 下载完成后 xff0c
  • Java8流式操作——中间操作

    文章目录 什么是中间操作 xff1f 方法实践说明一 前提条件Person类Data类 二 操作filter 过滤distinct 去重 xff08 去除集合中重复的元素 xff09 sorted 排序 sorted 无参构造 sorted
  • 数据挖掘(Data Mining)扫盲笔记

    知识框架来源 xff1a 人工智能之数据挖掘 其他补充来源 xff1a 拿下Offer 数据分析师求职面试指南 数据分析实战45讲 Data Mining 概述篇基础认知挖掘对象常见任务 xff1a 模型分类问题与挑战十大经典算法 C4 5
  • 信息论笔记(需要编辑格式)

    主要来源 xff1a 吴军 信息论40讲 信息论介绍 世界上任何一个探索者都需要清楚三件事 我们现在的位置 我们的目标 以及通向目标的道路 哲学是一门生活的艺术 它帮助我们认清自己 它回答了第一个问题 至于每一个人的目标 我相信大家比我更清
  • 阿里云短信服务使用

    说明 这是用go语言实现的 xff0c 但说实话 xff0c 其实没啥影响 xff0c 不管什么语言都是这个套路 xff0c 所以无论你是学什么语言或者是用什么语言的都好 xff0c 看看总不亏 22年7 14下午14 xff1a 38 x
  • 数据分析思维扫盲

    知识来源 xff1a 接地气学堂1 前言 行文之初衷 xff0c 建立知识树 xff0c 因而不易速读 xff0c 请君悉知 宜为工具书 xff0c 按索引取之 独学而无友 xff0c 必孤陋寡闻 xff0c 请君赐教 xff0c 不吝感激
  • 高阶用户运营体系搭建

    这里写目录标题 第1章 理解用户运营本质1 什么是 用户运营 xff1f 2 一个 用户运营 重点关注什么 xff1f 3 怎么做好用户运营 xff1f 4 高阶用户运营体系搭建5 大规模用户运营体系的3大子系统6 用户留存的归因 活跃差模
  • 商品管理-运营指挥室 看板

    商品管理可视化项目 项目目标 梳理商品管理的整体业务流程 xff0c 调研数据的使用情况 xff0c 建立影响业务的 xff1a 销量 留存 sku数 断码等维度指标 xff0c 建立智能数据监控体系 工作范围 销量看板留存看板在售SKC看
  • Excel 的进阶学习

    文章目录 Excel 的进阶学习1 常用的 Excel 函数及用途1 关联匹配类2 清洗处理类3 逻辑运算类4 计算统计类5 时间序列类 2 基础1 快捷键2 数据组错误信息基本认识计算操作符 3 数据图展示 3 实战分析注意 Excel
  • SQL

    数据库 基本概念 1 xff0e 数据 定义 xff1a 描述事物的符号序列 xff0c 数据 xff08 Data xff09 是数据库中存储的基本对象 数据的种类 xff1a 数字 文字 图形 图像声音及其他特殊符号 数据举例 xff1
  • MatLab-simulink组件(模块)中文名大全

    MATLAB 矩阵实验室 7 0 1 Simulink 仿真 6 1 Aerospace Blockset 太空模块 1 6 1 Bioinformatics Toolbox 生物信息工具箱 1 1 1 CDMA Reference Blo
  • 控制理论总结

    经典控制理论 xff1b 现代控制理论线性控制理论 xff1b 非线性控制理论最优控制 xff1b 预测控制 xff1b 鲁棒控制数字控制系统 xff1b 连续控制系统随动系统 xff1b 自动控制系统的分类 一 按给定信号的形式不同 xf

随机推荐

  • H无穷控制

    H无穷优化控制问题可归纳为 xff1a 求出一个使系统内部稳定的控制器K s xff0c 使闭环传函Tzw的无穷范数极小 LQG的弱点 xff1a 对控制的一个主要挑战使多变量控制系统设计 xff0c 因为MIMO系统的传函是一个矩阵 LQ
  • 增益调度控制

    增益调度方法在良性 Well Behaved 非线性系统中应用的比较普遍 xff0c 所谓良性非线性系统是指系统的行为特性能由一系列选定的局部线性化模型充分描述 增益调度控制方法的一个显著优点就是它能够充分利用现有的成熟的线性控制理论为非线
  • UORB讲解

    Pixhawk 飞控系统是基于ARM的四轴以上飞行器的飞行控制器 xff0c 它的前身是PX4 IMU xff0c Pixhawk 把之前的IMU进行了完整的重构 xff0c 最新版本是2 4 3 而对应的Pixhawk 1 x版本与2 x
  • gorm的Raw与scan

    gorm的Raw与scan Raw 中文 xff1a 原生的 作用 xff1a 在写gorm语句时候用来写Raw sql语句 xff08 原生sql语句 xff09 gorm官方介绍Scan https gorm io zh CN docs
  • MavLink

    2 1 MAVLink xff08 Micro Air Vehicle Link xff09 是一种用于小型无人载具的通信协议 xff0c 于2009年首次发布 该协议广泛应用于地面站 xff08 Ground Control Statio
  • 飞控接收到的每一条MAVLink消息包都会上传到uORB消息池中吗?

    1 飞控接收到的每一条MAVLink消息包都会上传到uORB消息池中吗 xff1f 2 如何自定义 xff08 选择 配置 xff09 发送给QGC的MAVLink消息 xff1f
  • 滤波、传感器融合、IMU合GPS可以测量哪些物理量

    目录 结论IMU加速度计陀螺仪GPS 原理加速度计陀螺仪GPS 传感器融合滤波算法线性互补滤波卡尔曼滤波KF扩展卡尔曼滤波EKF 小结 结论 IMU paxhawk pixhack自带的IMU xff08 惯性测量模块 xff09 包含以下
  • 学习过程中提出的疑问

    目录 如何在simulink中编译两个应用并烧录到飞控中 xff1f 如何自定义地面站QGC接收到的MAVLink消息 xff1f xff08 MAVLink inspector xff09 航点 航路生成器 xff1f 如何在simuli
  • PX4学习笔记

    目录 网址PX4 io网页指导Pixhawk PX4 APM ArduPilot关系硬件照片 示意图逻辑图 集多旋翼控制框架软件框架 辅助工具 软件 使用方法source insight新建工程 导入PX4源码source insight
  • H无穷控制理论与应用案例分析

    0 知识背景 概念 定义 内稳定 xff1a BIBO稳定 xff1a 镇定 xff1a 对于一个控制系统来说 xff0c 如果通过某种反馈可以使系统实现渐近稳定 xff0c 即闭环系统极点具有负实部 xff0c 则称该系统是能镇定的 信号
  • ADRC从入门到放弃0

    ADRC xff1a 自抗扰控制器 其中 xff0c 在对自抗扰理论的 研究中 xff0c 引入了带宽概念这一个崭新的思路 xff0c 极大的简化了自抗扰技术使用时参数整定 的问题 xff0c 同时时域分析的方法可以发现利用带宽的概念还有利
  • 直升机建模

    目录 引子tips模型的组成 引子 duck不必陷入细节 xff0c 比如坐标转换 xff0c 忽而略微小项目 tips x 表示两个向量的叉乘 模型的组成 刚体运动学 xff1a 描述平移运动与转动运动 xff0c 即位移 xff08 线
  • 模糊PID(自适应模糊PID、fuzzy PID)的基本原理及应用举例 by 研三笔记

    目录 1 控制框图2 概述3 基本原理3 1 一些基本的概念 定义3 2 模糊化3 3 模糊推理3 4 清晰化 xff08 解模糊 反模糊化 xff09 3 5 模糊PID3 6 使用 fis文件 4 利用matlab模糊控制工具箱设计模糊
  • 3d目标检测

    目录 知网论文阅读笔记关键词 key words现状 摘要 碎片知识点3D检测算法分类根据其使用的数据类型为三类 xff1a 按照点云不同的特征表达方式分类 1 xff1a 其他分类方法 1 xff1a 根据传感器分类 2 xff1a 根据
  • kex_exchange_identification: Connection closed by remote hostConnection closed by ::1 port 22

    kex exchange identification Connection closed by remote hostConnection closed by 1 port 22 缘起 拉代码仓库出错 xff0c 还挺常见 https 错
  • 基于线性矩阵不等式LMI的鲁棒H无穷控制算法设计,多性能指标的H无穷控制算法推导,多面体模型

    catalogue 关键字一些符号和特殊表示预备知识正文 xff08 一 xff09 不确定系统的数学表示 xff08 二 xff09 线性时不变定常系统的LMI稳定性定理 xff08 判据 xff09 2 1 系统模型2 2 当u 61
  • python与其他语言的不同之处--语法拾遗

    八戒你说呢 基本语法空行的使用行与缩进import 与 from import命令行参数变量的使用列表Tuple xff08 元组 xff09 Set xff08 集合 xff09 Dictionary xff08 字典 xff09 Pyt
  • 深度学习入门篇1

    1 目前流行的深度学习框架简介 深度学习框架 xff08 点击跳转 xff09 2 神经网络工具箱torch autograd与torch nn torch autograd库虽然实现了自动求导与梯度反向传播 xff0c 但如果我们要完成一
  • 3D点云的基本操作(基于PCL编程)

    知识储备 右手系 右手 xff0c 拇指 xff0c 食指 xff0c 中指 xff0c 分别是x y z的正方向 左手系则同理 旋转矩阵 本质 xff1a 两个坐标系之间的旋转关系 用途 xff1a 旋转点云 原理 xff1a 设传感器的
  • uCOS-III 应用开发指南—基于 STM32F103系列

    uCOS III 应用开发指南 基于 STM32F103系列 嵌入式经典教材 实例截图 文件 xff1a 590m com f 25127180 490253580 defdec xff08 访问密码 xff1a 551685 xff09