14 Star 80 Fork 23

北京大学-张齐勋 / 移动端开发入门实践

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
HTTP_JWT.md 2.46 KB
一键复制 编辑 原始数据 按行查看 历史
张齐勋 提交于 2021-04-27 12:18 . update
  • Token在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。一般作为邀请、登录系统使用。
  • Token 是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位。
  • 如果这个 Token 在服务端持久化(比如存入数据库),那它就是一个永久的身份令牌。
  • 通常Token 是有过期时间的。
  • JWT(JSON Web Token 是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。

JWT

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6IjAwMiIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWUiOiLmnY7lm5siLCJuYmYiOjE1NjU5MjMxMjIsImV4cCI6MTU2NTkyMzI0MiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1NDIxNCIsImF1ZCI6Imh0dHA6Ly9sb2NhbGhvc3Q6NTQyMTUifQ.Mrta7nftmfXeo_igBVd4rl2keMmm0rg0WkqRXoVAeik

JSON Web Token由三部分组成,它们之间用圆点(.)连接。这三部分分别是:

  • Header:由两部分组成:token的类型(“JWT”)和算法名称
  • Payload:Payload是JWT用于信息存储部分,其中包含了许多种的声明(claims)。可以自定义多个声明添加到Payload中,系统也提供了一些默认的类型 iss (issuer):签发人 exp (expiration time):过期时间 sub (subject):主题 aud (audience):受众 nbf (Not Before):生效时间 iat (Issued At):签发时间 jti (JWT ID):编号
  • Signature:签名信息,防止数据被篡改

不要在JWT的payload或header中放置敏感信息,除非它们是加密的。

JWT

认证流程

  • 用户首先通过登录,到认证服务器获取一个Token。
  • 在访问应用服务器的API的时候,将获取到的Token放置在请求的Header中。
  • 应用服务器验证该Token,通过后返回对应的结果。

应用场景

  • 对于小型项目,可能认证服务和应用服务在一起。本例通过分开的方式来实现,使我们能更好的了解二者之间的认证流程。
  • 对于复杂一些的项目,可能存在多个应用服务,用户获取到的Token可以在多个分布式服务中被认证,这也是JWT的优势之一。
JavaScript
1
https://gitee.com/ss-pku/webdev.git
git@gitee.com:ss-pku/webdev.git
ss-pku
webdev
移动端开发入门实践
master

搜索帮助