Express + JWT用户认证最轻实践

本文介绍如何使用Express和JWT实现前后端分离系统的用户认证。覆盖JWT原理、认证流程及具体实现细节。

Express + JWT用户认证最轻实践

最近给自己列了一个list,Ummm...列来列去大概是下面这个样子:

  • React SSR服务端渲染
  • jwt用户认证
  • Vue全家桶
  • 微信小程序开发
  • ... 等等

好吧,谁让自己菜呢,没什么好抱怨的,一个一个来吧。正好最近看了一些token做身份认证的文章,发现其中大部分都是说token登录怎么怎么好,反正没有几个认认真真的实现的。。。正好,秉着我是小白我怕谁的原则,继续分享一下express + jwt的填坑经历。为什么题目起名是最轻实践呢?因为确实看完这个你可以大概理解token登录的好处以及如何简单的实现一个前后端通过token进行认证的小系统。这个demo是在我第一篇文章那个脚手架上跑起来的,感兴趣的还可以回顾一下----->express-react-scaffold。具体实现就是下面这个样子:

  • 不用token验证的页面正常浏览
  • 需要验证的页面进行token验证
  • 没有token信息或token信息过期,提示用户重新登录,跳转到登录页面
  • 登录成功之后每次请求携带token信息

这篇文章包括

  • 为什么要用token做身份验证(另一种模式是session)
  • 前端http请求拦截器的设置
  • 后端express + jsonwebtoken实现基于token的用户身份验证

token是个啥子东西

身份认证的两种方式

在前后端分离的系统中,身份认证是十分重要的,目前常用的两种身份认证方式如下:

  • 基于cookie
    基于cookie的服务端认证,就是我们所熟知session,在服务端生成用户相关的 session 数据,而发给客户端 sesssion_id 存放到 cookie 中,这样用客户端请求时带上 session_id 就可以验证服务器端是否存在 session 数据,以此完成用户认证。
  • 基于Token令牌
    基于 token 的用户认证是一种服务端无状态的认证方式,服务端不用存放 token 数据。用户验证后,服务端生成一个 token(hash 或 encrypt)发给客户端,客户端可以放到 cookie 或 localStorage(sessionStorage) 中,每次请求时在 Header 中带上 token ,服务端收到 token 通过验证后即可确认用户身份。

token认证的好处

  • 体积小(一串字符串),因而传输速度快
  • 传输方式多样,可以通过HTTP 头部(推荐)、 URL、POST 参数等方式传输严谨的结构化。它自身(在
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值