Java实现登录功能(一)
文章目录
前言
刚开始学习Java的时候,你是否有过疑问,登录功能就是简单地查询数据库对比一下账号密码就行了吗?在进行权限认证的时候,又该怎么办呢?每次都在提交的表单上加上账号密码吗?在这种情况下又该怎么防止CSRF(跨站请求伪造)呢
以下介绍一种现在流行的基于JWT的Token认证实现的登录功能。
一、Token的认证流程及优点
认证流程:
1.客户端发送带有用户名和密码参数的登录请求
2.服务端收到请求,验证用户名和密码
3.验证通过后,服务端签发Token并返回token给客户端
4.客户端收到Token后存储到Cookie或者Storage等中
5.客户端每次向服务端请求资源时需要在cookie或者header请求头中携带服务端签发的token
6.服务端收到请求后验证客户端请求携带的token,如果验证通过就向客户端返回请求数据
一般情况下,Token是被Header请求头所携带的。
有着以下优点:
1.支持跨域:Cookie是无法跨域的,而Token可以放在header请求头发送,所以支持跨域。
2.无状态:Token认证方式在服务端不需要像传统的Session认证方式那样去记录SessionId,因为Token本身包含了登录用户的信息,可以减轻服务端的压力。