1 认证、授权、会话基础概念

什么是认证

进入移动互联网时代,大家每天都在刷手机,常用的软件有微信、支付宝、头条等,下边拿微信来举例子说明认证相关的基本概念,在初次使用微信前需要注册成为微信用户,然后输入账号和密码即可登录微信,输入账号和密码登录微信的过程就是认证。

系统为什么要认证?

认证是为了保护系统的隐私数据与资源,用户的身份合法方可访问该系统的资源。

认证 :用户认证就是判断一个用户的身份是否合法的过程,用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问,不合法则拒绝访问。常见的用户身份认证方式有:用户名密码登录,二维码登录,手机短信登录,指纹认证等方式。

什么是会话

用户认证通过后,为了避免用户的每次操作都进行认证可将用户的信息保证在会话中。会话就是系统为了保持当前用户的登录状态所提供的机制,常见的有基于session方式、基于token方式等。

基于session的认证方式如下图:

它的交互流程是,用户认证成功后,在服务端生成用户相关的数据保存在session(当前会话)中,发给客户端的 sesssion_id 存放到 cookie 中,这样用户客户端请求时带上 session_id 就可以验证服务器端是否存在 session 数据,以此完成用户的合法校验,当用户退出系统或session过期销毁时,客户端的session_id也就无效了。

基于token方式如下图:

它的交互流程是,用户认证成功后,服务端生成一个token发给客户端,客户端可以放到 cookie 或 localStorage 等存储中,每次请求时带上 token,服务端收到token通过验证后即可确认用户身份。

什么是授权

还拿微信来举例子,微信登录成功后用户即可使用微信的功能,比如,发红包、发朋友圈、添加好友等,没有绑定银行卡的用户是无法发送红包的,绑定银行卡的用户才可以发红包,发红包功能、发朋友圈功能都是微信的资源即功能资源,用户拥有发红包功能的权限才可以正常使用发送红包功能,拥有发朋友圈功能的权限才可以使用发朋友圈功能,这个根据用户的权限来控制用户使用资源的过程就是授权。

为什么要授权?

认证是为了保证用户身份的合法性,授权则是为了更细粒度的对隐私数据进行划分,授权是在认证通过后发生的,控制不同的用户能够访问不同的资源。

授权: 授权是用户认证通过根据用户的权限来控制用户访问资源的过程,拥有资源的访问权限则正常访问,没有权限则拒绝访问。

视频下载

燕青SpringSecurity视频下载

做项目必须懂的三个概念 认证、会话、授权相关推荐

  1. 三点估算pmp_我本人是做项目经理的,我把考PMP也当成一个项目来规划

    一. 辅导班的好处 咨询过几位前辈后,我毫不犹豫的选择参加辅导班.说服自己的理由至少有以下三点: 1. PMP指南对大部分人是陌生的新学科和新模式,普遍反映上面的话不是人的语言,参加培训班可以有专业的 ...

  2. 软件项目开发中的三个“不应做”事项

    作者 | Lawrence Putnam Jr 译者 | 盖磊 1 本文要点 项目未按时间表完成,或是项目超出了预算,这是导致很多项目失败的原因.前期对项目做出预测,有助于避免从一开始就做出不切实际的 ...

  3. 【笔记】三张图读懂机器学习:基本概念、五大流派与九种常见算法

    文章目录 [笔记]三张图读懂机器学习:基本概念.五大流派与九种常见算法 Chapter 1: A look at Machine learning 1.What is it? 2.How does m ...

  4. c语言做bs架构_《Java软件项目(BS架构)开发》基本概念.ppt

    <Java软件项目(BS架构)开发>基本概念 第1章 基本概念 学习目标 课程介绍 B/S架构应用程序的相关概念介绍 课程介绍 必修课,学分4, 6学时/周 围绕联合银行的网上银行项目的实 ...

  5. linux内核区分cpu架构,一文读懂处理器,内核,芯片三个概念的区别

    一.处理器简介 处理器一般指中央处理器.中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control U ...

  6. 23招做项目——工厂模式:工厂方法和抽象工厂

    在网上的大多数资料里面,将工厂模式分为:简单工厂.工厂方法.抽象工厂,他们之间的联系(以电子厂为例)如下: 那么该文章首先讲解工厂模式是什么,为什么需要工厂模式,最后再对三种模式进行示例.该文章是23 ...

  7. 谈谈最近独立做项目的一些事情,一些小经验,分享之!

    可以说我是一个码农,一个纯正的码农,一个脱离了低级趣味的码农,时刻准备着要做一个对社会有贡献的码农. 平常最喜欢的事情就是在群里问问题,总是有那么一群好哥们在一起,这样可以享受装逼的乐趣. 谈了这么多 ...

  8. 单片机初学者做项目为什么这么难?单片机初学者心得有哪些

    现在回想起自己刚开始学习单片机的经历,让我印象最深,也感觉最难学的就是电路了. 当时看了模拟电路的视频,看到三极管放大电路就开始云里雾里了. 后面以为是自己基础太差,又买了一本比笔记本还厚的电子元器件 ...

  9. 【转】做产品VS做项目

    相关定义 根据GB/T19000-2008<质量管理体系基础和术语>,有以下定义 过程process 一组将输入转化为输出的相互关联或相互作用的活动 注:一个过程的输入通常是其他过程的输出 ...

最新文章

  1. Android开发教程 - 使用Data Binding(二)集成与配置
  2. 大四可以正式入职吗_三方协议一签,就不是应届生了吗?高校毕业生注意,别错失身份...
  3. 新品秀:Dell Cast,让Android平板变身台式PC
  4. Selenium 中文API
  5. CSS3之background的调整和增加的属性
  6. 批量生成变量及引用_R语言:data.table语句批量生成变量
  7. exchange管理控制台命令行 查看邮箱数据库信息、接收连接器、发送连接器 相关命令
  8. RMAN 总括 组成 配置 检测
  9. 七雄争霸mysql修改_七雄争霸单机版游戏
  10. 什么是句柄?指针和句柄的区别
  11. Android adb脚本文件神器
  12. FormulaR1C1是EXCEL中单元格公式输入方法
  13. 网络电视服务器账号密码,中兴网络电视机顶盒密码是多少
  14. opencv 3D摄像头不能读取画面
  15. 程序员的“三十而已”
  16. Turing Tape (推公式 模拟)
  17. ArcMap中的各种GIS文件的变换(img转tif,tif坐标系转换,shp坐标系转换)
  18. Matlab绘图------特殊图形------直方图
  19. bmi计算 python_python tkinter bmi计算
  20. struts2+hibernate留言板并发布到自己的主机上(-)

热门文章

  1. java毕业设计颜如玉图书销售网站的设计与实现Mybatis+系统+数据库+调试部署
  2. Android7.0以上安装时出现“解析软件包错误”
  3. P2P跑路调查:投资者过分追求高收益 最高损失超百万
  4. Anaconda Distribution :流行的Python数据科学平台
  5. oracle 内置程序包,建立程序包的方法,程序包中使用游标,常用程序包
  6. 用python画简单花瓣_花瓣网花瓣爬虫
  7. 计算机英语五人对话,英文应聘对话5人的急求一篇英语对话 关于应聘的 最好是五人的...
  8. 江苏省南通中学2021高考成绩查询,南通中学排名前十名,2021年南通中学排名一览表...
  9. 网络流例题-小行星二维到三维
  10. 红米1s android8.0,【红米1S(移动4G) 安卓4.4.2线刷包】MIUI V8.0.1.0.KHHCNDG稳定版 精简线刷包...