单点登录Redis存储Session及SessionId问题说明与集群实战-4
生活随笔
收集整理的這篇文章主要介紹了
单点登录Redis存储Session及SessionId问题说明与集群实战-4
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
現在就是要改造我們getUserInfo,因為我們不會再從session里面獲取用戶,首先我們要哪一個login_token,這個時候拿到loginToken,如果loginToken是empty的話,我們還是返回用戶未登錄,把這個拿過來,也就是說我獲取用戶信息的時候,也就是mmall_login_token,我拿不到他,那如果拿到了呢,很簡單,這個用戶的json字符串,get的key是什么呢,key就是我們loginToken,然后把這個字符串轉成User,因為只有對象,沒有集合,然后后面繼續做這個判斷,上面就是獲取用戶的信息,Session這個對象就用不上了,同樣的我們把刪除cookie寫在logout里邊
@RequestMapping(value = "logout.do",method = RequestMethod.POST)@ResponseBodypublic ServerResponse<String> logout(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse){String loginToken = CookieUtil.readLoginToken(httpServletRequest);CookieUtil.delLoginToken(httpServletRequest,httpServletResponse);RedisShardedPoolUtil.del(loginToken);// session.removeAttribute(Const.CURRENT_USER);return ServerResponse.createBySuccess();}
現在我們來寫logout,logout也很簡單,同樣的我們去讀取一下loginToken,接下來這個session也不用了,我們用的還是servletRequest,那么這個時候我們的loginToken就刪除了,同樣的我們在redis里面,logout我們就寫完了
@RequestMapping(value = "logout.do",method = RequestMethod.POST)@ResponseBodypublic ServerResponse<String> logout(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse){String loginToken = CookieUtil.readLoginToken(httpServletRequest);CookieUtil.delLoginToken(httpServletRequest,httpServletResponse);RedisShardedPoolUtil.del(loginToken);// session.removeAttribute(Const.CURRENT_USER);return ServerResponse.createBySuccess();}
?
總結
以上是生活随笔為你收集整理的单点登录Redis存储Session及SessionId问题说明与集群实战-4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单点登录Redis存储Session及S
- 下一篇: Redis分布式快速入门