首页 > 其他分享 >全栈开发知识点|那些authentication之类的名词

全栈开发知识点|那些authentication之类的名词

时间:2023-06-19 19:22:53浏览次数:45  
标签:知识点 请求 全栈 authentication Session Cookie token 服务端 客户端

原文来自于:https://www.51cto.com/article/675946.html

此处进行进一步的记录


  • 身份验证(Authentication):验证当前用户的身份,证明“你是你自己”
      1.  用户名密码登录
      2.  邮箱发送登录链接
      3.  手机号接收验证码
      4.  只要你能收到邮箱/验证码,就默认你是账号的主人
  • 授权 Authorization: 某个用户授予其他应用访问该用户某些资源的权限

  • 凭证 Credentials:标记访问者的身份。


     

  • Cookie:

    • HTTP 是无状态的协议:服务端不会保存任何会话信; 每个请求都是完全独立的, 所以服务端无法确认当前访问者的身份信息,所以无法确认发送请求和接受请求的是不是一个人。
    • 为了解决上面的问题,所以必须去记录和维护一个状态,这里使用cookie或者session
    • cookie 存储在客户端:cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上
    • cookie 是不可跨域的:每个 cookie 都会绑定单一的域名,无法在别的域名下获取使用,一级域名和二级域名之间是允许共享使用的(靠的是 domain)
  • Session:另外一种记录服务器和客户端会话状态的机制,通常基于cookie实现

    • session 认证流程:

      1.  用户第一次请求服务器的时候,服务器根据用户提交的相关信息,创建对应的 Session
      2.  请求返回时将此 Session 的唯一标识信息 SessionID 返回给浏览器
      3.  浏览器接收到服务器返回的 SessionID 信息后,会将此信息存入到 Cookie 中,同时 Cookie 记录此 SessionID 属于哪个域名
      4.  当用户第二次访问服务器的时候,请求会自动判断此域名下是否存在 Cookie 信息,如果存在自动将 Cookie 信息也发送给服务端,服务端会从 Cookie 中获取 SessionID,再根据 SessionID 查找对应的 Session 信息,如果没有找到说明用户没有登录或者登录失效,如果找到 Session 证明用户已经登录可执行后面操作。
  • Cookie 和 Session 的区别

    • 安全性:Session 比 Cookie 安全,Session 是存储在服务器端的,Cookie 是存储在客户端的。
    • 存取值的类型不同:Cookie 只支持存字符串数据,想要设置其他类型的数据,需要将其转换成字符串,Session 可以存任意数据类型。
    • 有效期不同:Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭(默认情况下)或者 Session 超时都会失效。
    • 存储大小不同:单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于 Cookie,但是当访问量过多,会占用过多的服务器资源。

 

  • 令牌 Token:访问资源接口(API)时所需要的资源凭证,简单 token 的组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token 的前几位以哈希算法压缩成的一定长度的十六进制字符串)

    • Acesss Token的特点是 * 服务端无状态化、可扩展性好 * 支持移动端设备 * 安全 * 支持跨程序调用
      1.  客户端使用用户名跟密码请求登录
      2.  服务端收到请求,去验证用户名与密码
      3.  验证成功后,服务端会签发一个 token 并把这个 token 发送给客户端
      4.  客户端收到 token 以后,会把它存储起来,比如放在 cookie 里或者 localStorage 里
      5.  客户端每次向服务端请求资源的时候需要带着服务端签发的 token
      6.  服务端收到请求,然后去验证客户端请求里面带着的 token ,如果验证成功,就向客户端返回请求的数据
  • Token 和 Session 的区别

    Session 是一种记录服务器和客户端会话状态的机制,使服务端有状态化,可以记录会话信息。而 Token 是令牌,访问资源接口(API)时所需要的资源凭证。Token 使服务端无状态化,不会存储会话信息。所以简单来说:如果你的用户数据可能需要和第三方共享,或者允许第三方调用 API 接口,用 Token 。如果永远只是自己的网站,自己的 App,用什么就无所谓了。

  • JWT(JSON Web Token)目前最流行的跨域认证解决方案

    • JWT 是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准。JWT 的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源
    • WT 认证流程:

      1.  用户输入用户名/密码登录,服务端认证成功后,会返回给客户端一个 JWT
      2.  客户端将 token 保存到本地(通常使用 localstorage,也可以使用 cookie)
      3.  当用户希望访问一个受保护的路由或者资源的时候,需要请求头的 Authorization 字段中使用Bearer 模式添加 JWT 

 

标签:知识点,请求,全栈,authentication,Session,Cookie,token,服务端,客户端
From: https://www.cnblogs.com/fangleSea/p/17491983.html

相关文章

  • 全栈测试开发系列----Selenium简介安装入门
     本章将使用当前最新的Python3和Selenium3作为Web自动化测试框架开发基础。既然是自动化脚本的开发,那么一切都需要多实践,需要动手敲下每一个实例中的每行代码,然后根据实际项目举一反三,就绝对可以有信心地跟别人说:“Selenium!SoEasy!”知识点:HTML技术:了解一个H......
  • 计算机组成原理知识点
    第一章电子计算机分为电子模拟计算机(应用范围较小)和电子数字计算机(还有数模混合),数字计算机的主要特点是按位运算,并且不连续地跳动计算。平常说的计算机都是电子数字计算机。电子数字计算机分为专用计算机和通用计算机。运算器+控制器等于一个cpu第一台计算机1946年美国宾......
  • Android面试涨薪攻略指南:Android面试必知必会Java知识点
    前言大多数面试者,虽然看起来工作努力,但他们表现出来的能力水平,却不足以通过面试,或拿到期望的薪资。在我看来,造成这种情况的原因,主要有这么两方面:第一,“知其然不知其所以然”。做了几年技术,开发了一些业务应用,但没有思考过这些技术选择背后的逻辑。所以,公司很难定位你日后的成长潜力......
  • SprintBoot JavaWeb访问提示 Full authentication is required to access this resour
    SprintBoot部署好网站之后访问没有异常,但是配置域名地址至Nginx上时登录请求报错了,经查询是因为项目是前后端分离,请求的路由会加上工程的主路径,所以需要在Nginx多配置一个地址,如Location/{http://localhost:8080/project}location/project/{http://loc......
  • c++11新特性之线程相关所有知识点
    c++11关于并发引入了好多好东西,这里按照如下顺序介绍:std::thread相关std::mutex相关std::lock相关std::atomic相关std::call_once相关volatile相关std::condition_variable相关std::future相关async相关std::thread相关c++11之前你可能使用pthread......
  • 运算符重载知识点总结
    #运算符重载在数学上,两个复数可以直接进行+、-等运算。但在C++中,直接将+或-用于复数对象是不允许的。•有时会希望,让对象也能通过运算符进行运算。这样代码更简洁,容易理解。•例如:complex_a和complex_b是两个复数对象;求两个复数的和,希望能直接写:complex_a+complex_b在数学上......
  • Python自动化测试基础必备知识点总结
    一、自动化测试的概念性能系统负载能力稳定性过载操作下的系统瓶颈自动化测试,使用程序代替人工,可以提高测试效率性,自动化测试能自动化使用代码模拟大量用户,让用户请求多页和多用户并发请求收集参数,并对系统负载能力进行统计生成报告。二、Python自动化测试基础必备知识点1.Pyth......
  • 硬件知识点
    1,ECU是一个控制核心,对电路板的控制2,一般汽车通讯是走Can通讯,主要有三种通讯方式:UDS(用的较多),XCP,CCP3,EOL相对ECU多了些电机其他东西,eol是一个总成4,NIcan卡一般是有一个120欧姆的电阻,现在NIcan卡自带120欧姆电阻,可以开启,也可以不打开5,串口通讯,RS232通讯,一般距离3米左右的距离,只能......
  • javaScript核心知识点
      一、JavaScript简介       一、JavaScript语言的介绍:JavaScript是基于对象和原型的一种动态、弱类型的脚本语言       二、JavaScript语言的组成:JavaScript是由核心语法(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)组成的       三......
  • 【React工作记录一百零八】前端小知识点扫盲笔记记录9
    前言我是歌谣放弃很容易但是坚持一定很酷微信公众号关注前端小歌谣带你进入前端巅峰交流群今天继续对前端知识的小结如何截取字符串<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge">......