Java实现基于token认证

   随着互联网的不断发展,技术的迭代也非常之快。我们的用户认证也从刚开始的用户名密码转变到基于cookie的session认证,然而到了今天,这种认证已经不能满足与我们的业务需求了(分布式,微服务)。我们采用了另外一种认证方式:基于token的认证。

一、与cookie相比较的优势:

1、支持跨域访问,将token置于请求头中,而cookie是不支持跨域访问的;

2、无状态化,服务端无需存储token,只需要验证token信息是否正确即可,而session需要在服务端存储,一般是通过cookie中的sessionID在服务端查找对应的session;

3、无需绑定到一个特殊的身份验证方案(传统的用户名密码登陆),只需要生成的token是符合我们预期设定的即可;

4、更适用于移动端(Android,iOS,小程序等等),像这种原生平台不支持cookie,比如说微信小程序,每一次请求都是一次会话,当然我们可以每次去手动为他添加cookie,详情请查看博主另一篇博客;

5、避免CSRF跨站伪造攻击,还是因为不依赖cookie;

6、非常适用于RESTful API,这样可以轻易与各种后端(java,.net,python......)相结合,去耦合

还有一些优势这里就不一一列举了。

二、基于JWT的token认证实现

 

 

三、测试

安装postman 

注意参数!!!

登录,输入headers 和  body中输入用户名、密码(json格式)

Java实现基于token认证_第1张图片

 

Java实现基于token认证_第2张图片

 

 

访问(源码如下:源码里用get方式,对源码修改后用了post方式)

Java实现基于token认证_第3张图片

源码git地址:https://github.com/qiaokun-sh/spring-token
--------------------- 
作者:程序员阿坤 
来源:CSDN 
原文:https://blog.csdn.net/KKKun_Joe/article/details/81878231 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(Java实现基于token认证)