前后端分离之SpringBoot项目Token认证

写在开始

有人说,爱上一座城,是因为城中住着某个喜欢的人。其实不然,爱上一座城,也许是为城里的一道生动风景,为一段青梅往事,为一座熟悉老宅。或许,仅仅为的只是这座城。就像爱上一个人,有时候不需要任何理由,没有前因,无关风月,只是爱了。 —林徽因

前段时间,大体了解了一下前后端分离之Vue项目构建测试打包发布,并简单的记录了一下。

其实,如果单纯的前后端分离项目,大可不必使用Token,原始的session就可以解决问题,当然前提是要在一个域(域名、IP、端口必须保持一致)下,前后端开发人员可使用Nginx代理服务器进行测试。

但是在微服务的大环境下,某些原因服务的细化可能不会在一个域下,这时候就需要客户端自己保存加密凭证,后台只需要做简单的解密认证。

准备环境

既然微服务这么流行,这里我们还是选择SpringBoot作为测试案例,使用JWT(Json Web Token)的授权方式。

jwt.jpg

项目涉及:

  • SpringBoot的使用
  • JWT加密解密
  • Cors跨域访问配置
  • Interceptor拦截器配置

代码什么的就不在这里罗列了,详细见:前后端分离微服务认证之JWT

总结

优点

  • 因为Token是以JSON加密的形式保存在客户端的,所以JWT是跨语言的,原则上任何web形式都支持。
  • 不需要在服务端保存会话信息,特别适用于分布式微服务。

注意事项

  • 切记保护好密钥,这个是最基本的。
  • 如果有条件,尽量使用https安全协议。
  • Token信息尽可能的少,只保存必须的就可以。
  • 退出操作一定要考虑好,如果Token被盗用,一定要做好服务端的校验。
qrcode_for_gh_bf7a27ade681_258.jpg

作者: 小柒

出处: https://blog.52itstyle.com

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(345849402@qq.com)咨询。