前後端分離的項目,如何解決登陸問題
阿新 • • 發佈:2018-07-31
響應 api 使用 返回 執行 之前 服務 主動 strong
方案一:使用token
1、前端把account和password,提交到服務端的登陸api
2、服務端驗證正確後,生成一個token,並把token和userId,存在緩存裏(推薦使用redis數據庫),然後把token返回給前端。
3、前端每次的請求頭中帶有token,這樣就能夠輕松的實現。
方案二:使用cookie
1、client發送username和password到server
2、server認證成功後,寫cookie到client,然後返回ok的json,其中cookie的key要存放在redis中,value就是用戶信息,並且要設置key的超時時間。可以設置超時時間為60分鐘。
3、當客戶端(client)收到ok服務端的響應後,執行相應的業務操作,以後每次請求服務端都會帶上cookie,不用寫代碼。
4、服務端(server)的fliter,每次會驗證傳過來的cookie中的key是否在redis中存在,如果存在,那麽就代表在之前登陸過,cookie存在過。沒有就返回錯誤標識。在登陸成功後,每次調用服務端的接口的時候
,都要為redis中的key進行續期,如為60分鐘。
5、當redis中的key超過60分鐘,自己會刪除這個key,那麽再次請求服務端的時候,就會收到需要登陸的返回值。
6、當用戶主動從server(服務端)退出的時候,也會主動在server中刪除redis中的key。
前後端分離的項目,如何解決登陸問題