Remember 功能持久化 token 信息|学习笔记

简介: 快速学习 Remember 功能持久化 token 信息

开发者学堂课程【Spring Security知识精讲与实战演示(二)Remember 功能持久化token信息】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/731/detail/13045


Remember 功能持久化 token 信息

 

基本实现了 remember-me 为什么说是基本实现了?因为还有安全性需要注意。当前 remember-me 记住的是当前登录的信息,换句话说现在的token如果被拿走,迁到自己的浏览器,这样也是可以登录的。前提是 remember-me没有过期,可以在自己的浏览器中添加一个 JSESSION 名,叫 remember-me,接下来域名就是网站的名称,将 token 值拿过来,过期时间保持一致就可以。这样就可能会盗取 token,token 就不安全了。所以 token 放在这里不是很安全。

应该将 token 放在数据库中存储,这样比较安全。这样用户可以看到自己的浏览器,但是看不到公司的数据库,所以应该持久化 remember-me的token。要想做到持久化必须新添加一张表,这张表是官方提供的,并且需要固定这张表的名称和字段不能改变,改变之后无法使用。

image.png

如下图,发现左侧导航栏中有 persistent-logins 表,但是发现现在打开这张表,刷新之后没有数据。在刚刚就操作 remember me 很多次了,为什么没有数据呢?

image.png

是因为这张表默认有了不会直接使用,需要自己加上 data-source-ref=“datasource”这个属性。就是需要在 remember me 中加入数据库连接词的一个对象。

image.png

将上图 data-source-ref=“datasource”输入到如下图位置,这样就会持久化到数据库了。

image.png

Remember-me-parameter=“remember-me”这一句可以省略。后面两句都是可以省略。需要的话可以加上。

Remember-me-parameter=“remember-me”的意思是remember-me中的name值必须是:remember-me“/。不能换做别的。其实也是可以修改的,但是”“中的内容需要保持一致即可。

data source是对对象的引用,这个ID是来自于IOC容器中一个对象的ID。

image.png

目前有两个IOC容器,applicationContext.xml是父容器,spring_mvc.xml是子容器。

image.png

现在CTRL的对象都要放到子容器内。IOC子容器可以被外界用http请求访问但是无法访问父容器。父容器只能通过子容器才能被外界调用。

总之要分区data source来自于哪里,不要点错。

这时可以重新启动项目,启动完成之后就可以做测试。

image.png

目前是启动的状态,填入用户名小马,勾选”记住“,点击登录。来到数据库刷新之后会发现已经把 token 信息记录下来了。

image.png

在数据库端记录 token 相对来说就比较安全。以上就把 remember-Me 的功能内容。remember-Me 功能的使用希望是将 token 记录到数据库。

相关文章
|
JSON 安全 数据安全/隐私保护
Refresh Token的使用场景以及如何与JWT交互
在这篇文章中,我们将探索由OAuth2定义的Refresh Token的概念。我们将会明白为什么他们会这样做,以及他们如何与其他类型的Token进行比较。我们也将通过一个简单的例子来学习如何使用它们。
18133 0
|
5月前
|
存储 JSON 负载均衡
Token、Session、Cookies是什么?如何理解其不同?一文带你了解
这篇文章详细解释了Token、Session和Cookies的概念、作用及其区别,探讨了它们在维持HTTP无状态连接中用户状态的用途和优缺点,特别是Session的服务器端存储和Token的客户端存储特性,以及它们在不同场景下的应用。
Token、Session、Cookies是什么?如何理解其不同?一文带你了解
|
5月前
|
API
【Azure Developer】记录一段验证AAD JWT Token时需要设置代理获取openid-configuration内容
【Azure Developer】记录一段验证AAD JWT Token时需要设置代理获取openid-configuration内容
|
7月前
|
存储 缓存
使用tp5内cache缓存,存储手机短信验证码
使用tp5内cache缓存,存储手机短信验证码
127 1
|
8月前
|
存储 缓存 NoSQL
【视频+源码】登录鉴权的三种方式:token、jwt、session实战分享
【视频+源码】登录鉴权的三种方式:token、jwt、session实战分享
144 1
node借助jsonwebtoken生成token以及验证token是否过期
node借助jsonwebtoken生成token以及验证token是否过期
|
安全 Java 数据库
SecurityOauth2密码模式/oauth/token探究
SecurityOauth2密码模式/oauth/token探究
416 0
|
存储 JSON 安全
一次性弄清楚 Authentication & Authorization 以及 Cookie、Session、Token
老虎、老鼠、傻傻分不清楚? 满脸、泥土、失败的被俘虏! 通过本文学习,让我们一次性搞清楚 Authentication & Authorization 以及 Cookie、Session、Token 的区别与联系。
1290 2
一次性弄清楚 Authentication & Authorization 以及 Cookie、Session、Token
|
存储 负载均衡 前端开发
一文助你快速理解Cookie,Session,Token的区别
本文详细描述了Cookie,Session,Token的定义、鉴权原理和区别。cookie是由Web服务器保存在用户浏览器上的一小段文本,格式:key=value,包含用户相关的信息。session是依赖Cookie实现的,session是服务器端对象,是浏览器和服务器会话过程中,服务器分配的一块储存空间。服务器默认为浏览器在cookie中设置 sessionid,浏览器在向服务器请求过程中传输 cookie 包含 sessionid ,服务器根据 sessionid 获取出会话中存储的信息,确定身份信息。
460 1
一文助你快速理解Cookie,Session,Token的区别
|
XML NoSQL Java
SpringSession的源码解析(生成session,保存session,写入cookie全流程分析)
上一篇文章主要介绍了如何使用SpringSession,其实SpringSession的使用并不是很难,无非就是引入依赖,加下配置。但是,这仅仅只是知其然,要知其所以然,我们还是需要深入源码去理解。
718 0
SpringSession的源码解析(生成session,保存session,写入cookie全流程分析)

热门文章

最新文章

下一篇
开通oss服务