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 参数等方式传输严谨的结构化。它自身(在

本文介绍如何使用Express和JWT实现前后端分离系统的用户认证。覆盖JWT原理、认证流程及具体实现细节。
最低0.47元/天 解锁文章
1263

被折叠的 条评论
为什么被折叠?



