項目地址:鏈接: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
失效頁面