前后端的身份认证

主流的开发模式:

  • 服务端渲染,服务器发送给客户端html页面(是在服务器通过字符串的拼接动态生成)
    优:前端耗时少,有利于seo,适合公司官网
    缺:占用服务器资源,不利于前后端分离,效率低
  • 前后端分离,依赖于ajax技术的广泛应用,后端提供接口API,前端使用ajax调用接口
    优:开发、用户体验好,减轻了服务端压力,适合做后台管理系统
    缺:不利于seo

身份认证(鉴权)

三种模式:cookie、session、jwt
服务端渲染推荐 session认证机制
前后端分离推荐 jwt 认证机制
http协议的无状态性
指的是客户端每次http请求都是独立的,连续多个请求之间没有直接的关系,服务器不会主动保留每次http的请求状态

image.png

  • cookie
    不同域名下的cookie各自独立,每当客户端发起请求时,会自动把当前域名下所有未过期的cookie一同发送到服务器
    特点:
    1.本质是字符串,4k左右,存储在客户端浏览器
    2.服务端生成,自动保存到客户端里
    3.伴随着http请求自动发送
    4.不安全(不要在cookie里存敏感信息,如密码)


    image.png
  • session 一般使用非跨域场景。
  1. 服务端生成,把用户信息存储在服务器的内存中,生成一个字符串(带有session标识)并将其保存到cookie中。
  2. session工作原理


    image.png
  3. session认证机制


    image.png
  4. session局限性


    image.png
  • JWT (json web token) 跨域解决方案
  1. 跨域,用户信息加密后保存到浏览器(手动携带)
  2. 工作原理
    用户信息通过token字符串的形式,保存到客户端浏览器中。服务器通过还原token字符串的形式来认证用户的身份。


    image.png
  3. jwt 三部分组成


    image.png
  4. jwt使用方式


    image.png

你可能感兴趣的:(前后端的身份认证)