项目地址:链接:https://pan.baidu.com/s/106lZU8P9gHG4A3aP4OpOgQ
提取码:xs3v
在spring social中,一共是三种登陆方式
1、用户名+密码;2、手机号+短信登陆;3、社交网站账号登陆
这三种方式都是采用session管理登陆的。
所以这篇文章我们讲解一下session
配置session的超时时间(单位是秒,默认是60*30=半个小时)
现在虽然设置了,但是如果小于60s也会失效
查看类TomcatEmbeddedServletContainerFactory
获得我们设置的秒数,然后转换成分钟数,然后进行比较,如果小于一分钟则使用一分钟
失效以后,服务器是不知道到底是因为没有登录还是session失效导致的,所以我们需要自己写逻辑
配置上过期失效跳转的地址
配置映射 处理
授权
启动,测试
现在要处理的就是现在登录的session踢掉之前登陆的session
设置为1,也及时服务器这边一直只有一个session,也就是现在登录的session踢掉之前登陆的session
对于过期session的具体处理
重启服务器,分别用谷歌和火狐浏览器登陆
如果你登陆成功之后,不希望第二个用户把你踢下去,而是他不能登陆,设置为true(当session达到最大数量之后,阻止后面的用户登陆)
现在都是返回的json数据,现在我们重构,使得在需要返回json的时候,返回json数据,在需要返回页面的时候返回html页面
需要的参数都放到SessionProperties类中
判断逻辑
为什么使用@ConditionalOnMissingBean(SessionInformationExpiredStrategy.class)注解,方便我们写,只要我们重写SessionInformationExpiredStrategy接口,在注入到bean中就可以实现我们自己的bean
失效页面