Web博客项目及jwt的学习

这几天完善了发布博客,完成了收藏博客的功能

Web博客项目及jwt的学习_第1张图片

 Web博客项目及jwt的学习_第2张图片

 Web博客项目及jwt的学习_第3张图片

 

博客项目

一共有三种身份:

访客(未登录),用户,管理员。

其中管理员拥有的功能最多,其次是用户,然后是访客。

从功能上看:

访客

  • 可以分页查看所有的博客
  • 可以查看最多的标签分类和所有的标签
  • 可以根据时间查找博客列表
  • 可以用关键字全局搜索博客
  • 可以快速查看最新的推荐博客
  • 可以查看单个博客内容
  • 可以查看用户的基本信息(浏览量,博客数,粉丝数)

用户

  • 管理博客
    • 从注册登录页面进入首页
    • 可以编辑发布文章(设置标签,分类,是否原创)
    • 可以修改已发布博客
    • 可以删除博客
  • 博客分类和标签
    • 新增、修改分类/标签
    • 删除分类/标签(如果目录下对应文章只有一个分类,则移入默认分类)
    • 根据名称查询分类/标签
  • 个人信息方面
    • 可以修改自己的个人信息

管理员

  • 查看发布未审核的文章
  • 可以通过未审核的文章

JWT

令牌组成

  • 标头(Header)
  • 有效载荷(Payload)
  • 签名(Signature)

格式通常是:Header.Payload.Signature

Header

标头通常由两部分组成:令牌的类型(即JWT)和所使用的签名算法,例如HMSC SHA256或RSA。它会使用Base64编码组成JWT结构的第一部分

注意:Base64也是一种编码,它可以被翻译回原来的样子,不是一种加密过程

{

        "alg":"HS256",

        "typ":"JWT"

}

Payload

令牌的第二部分是有效负载,其中包含声明,声明是有关实体(通常是用户)和其他数据的声明,同样也会使用Base64编码,是JWT的第二部分

{

        "sub":"1234560",

        "name":"John Doe",

        "admin":true

}

Signature

Signature需要使用编码后的Header和Payload以及我们提供的一个密钥,然后使用header中指定的签名算法(HS256)进行签名。签名的作用是保证JWT没有被篡改过

签名的目的:实际上是对头部以及负载内容进行签名,防止内容被篡改,如果有人对头部以及负载的内容解码之后进行篡改,再进行编码,最后加上签名组合形成新的JWT的话,那么服务器回判断出新的头部和负载形成的签名和JWT附带上的签名是不一样的

HMACSHA256(

        base64enc(header)+'.'+,

        base64enc(payload)

        ,secretKey

)

放在一起之后,是由三个点分隔的Base64-URL字符串,可以在HTML环境中传递这些字符串,与基于XML的标准相比,它更紧凑

Web博客项目及jwt的学习_第4张图片

你可能感兴趣的:(总结,项目,学习)