美文网首页Java webMiners-ICU
服务端的登陆验证方式

服务端的登陆验证方式

作者: Sober_清醒 | 来源:发表于2020-03-07 02:13 被阅读0次

服务端的登陆验证方式

刚入门的萌新肯定都有一个疑问,登录方式难道只能用Session么,那么如果不是Web项目该怎么办呢。

这篇文章将带你了解:JWT的token验证,通过Redis代替Session验证,还有最基本的Session验证。

正文

了解Session的登录验证方式(只能用于Web)

Session是什么

  • 用来维护服务器和浏览器用户之间的状态联系
  • Session的主要目的就是为了弥补Http的无状态特性

Session是如何验证用户状态的

在Java Web项目中用户登录成功会生成一个Session,这个Session会存储在服务端然后返回给浏览器,浏览器也会将Session存储起来。

在用户第二次请求的时候,浏览器会携带Session发送给服务端请求,这时候拦截器会验证Session是否存在,存在则是登录状态,不存在则是未登录。

  • 如果看不懂的话看下图
login1

了解Redis的登录验证方式(通用)

Redis是什么

  • Redis是一个基于内存的是数据库
  • Redis可以设置数据的过期时间
  • 字典型数据库

如何使用Redis来验证用户的登录状态

  • 这里我们使用Redis和Session的本质上是一样的,但是我们需要做的工作会更多。。
  • 我们需要做什么
    • 需要自己生成每个用户唯一的密匙(如UUID)
    • 需要将密匙存储与Redis中
    • 需要自行将密匙放在cookie或直接返回给前端
    • 浏览器接收到密匙,将密匙存储到Cookie或者其他的存储方式
    • 浏览器每个请求都需要带上密匙
    • 服务端接收到请求,需自行验证请求中的密匙与服务端存储的密匙

这里的流程和Session基本一致,只不过我们需要做更多的工作了,就不放图了。

JWT的Token验证方式(本文要点)(通用)

这是我个人比较喜欢的一种方式

什么是JWT

  • JSON Web Token == JWT(它主要包含了以下信息)

    • 发行人
    • 到期时间
    • 数据(如用户信息)
  • JWT最终会将所以数据哈希化成为一串密文(即为Token)

  • 因为其自带到期时间,所以服务端一般无需保存Toekn

  • 但是服务端也无法管理用户的登录状态

  • 颁发以后一直有效,除非时间过期

如何使用JWT来验证用户登录状态

  • 用户登录时使用用户的信息用JWT工具类生成 Token
    • 注意要设置过期时间
  • 将Token返回给前端浏览器
  • 浏览器接收到Token,将密匙存储到Cookie或者其它的存储方式
  • 浏览器每个请求都需要带上Token
  • 服务端接收到请求,使用JWT工具类验证 token是否是自己颁发的、或过期没有等等

这里的流程和Session基本一致,就不放图了。

总结

基本的验证流程是一样的,只不过我们所做的工作不一样了。

这里提一下适用范围:

  • Session只适用于web
  • Redis验证适用于APP、Web、桌面应用等等
  • JWT同上,当然token也可以用作信息交换

相关文章

  • 基于token的身份验证

    传统基于服务器的验证方式 传统的验证方式是基于服务器的,就是把登陆信息存在服务端,每次登陆需要去辨别存储的登陆信息...

  • 服务端的登陆验证方式

    服务端的登陆验证方式 刚入门的萌新肯定都有一个疑问,登录方式难道只能用Session么,那么如果不是Web项目该怎...

  • Jmeter中传递cookie值

    场景:用户登陆后会本地会保存cookie,cookie是用来跟服务端验证此用户已经登陆过的重要信息,但是如何获取并...

  • LDAP客户端安装

    安装环境:10.43.159.7 客户端 使用ldap客户端验证登陆:用户为10.43.159.9服务端上面创建的...

  • Sign in with Apple 服务端验证(nodejs

    本篇主要内容是将如何在服务端验证apple的登陆验证token,客户端的集成可以参考apple开发者或其他文章介绍...

  • 柠檬数据后台接口

    接口: 登陆验证接口: 请求方式:POST发送数据:dataToSend:{usearname: ' admin'...

  • mongo-python

    1、用户无权限验证连接mongo 2、用户权限验证登陆连接mongo(1)注:有权限校验登陆最好选择这种方式,另一...

  • 常见的登陆验证方式

    http basic auth 每次请求API时都提供用户的username和password。 容易把账号密码暴...

  • nodejs(5)-使用EXPRESS+MONGODB+EJS+

    ##### 功能实现(主要技术点) 1. 登陆注册、登陆信息判断 2. 轮播图 使用服务端渲染的方式,因为轮...

  • kotlin 随机生成图片验证码

    引言 图片随机验证码,登陆、注册经常用到,最近项目需要使用手机验证码和随机图片验证码两种方式进行注册登陆。从网上找...

网友评论

    本文标题:服务端的登陆验证方式

    本文链接:https://www.haomeiwen.com/subject/lhhxdhtx.html