1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個贊
登錄時(shí)候,提交用戶名密碼驗(yàn)證碼給api,api收到后驗(yàn)證,然后返回token給前端,前端在一個合理的地方存儲這個token,然后每次調(diào)用需要登錄才能訪問的接口,都要傳這個token給后端。后端通過token知道是哪個用戶,判斷有效性。如果服務(wù)器端返回需要登錄之類的錯誤碼,前端就清除token引導(dǎo)到登錄頁面,重新登錄。服務(wù)器端一般用redis來存儲。react下,一般配合react-router,如果沒有token這個值之類的,訪問需要登錄的頁面的時(shí)候無法訪問,引導(dǎo)到登錄頁面。
還有很多細(xì)入的問題,這就是個大概的方式。其實(shí)session也是大概這樣的方式,session配合cookie,無感的自動完成了這些事。
可以生成jwt的token
如果是app,由于用戶體驗(yàn),不希望token一過期,就要重新登錄,所以一般登錄后會提供一個access_token和過期時(shí)間更長的refresh_token,access_token做調(diào)用資源的驗(yàn)證,當(dāng)access_token過期后,可以通過refresh_token去驗(yàn)證服務(wù)器重新獲得access_token和refresh_token,就不用頻繁的讓app用戶登錄了,refresh_token要存到手機(jī)的安全位置。
當(dāng)然這一塊存在很多安全問題需要解決,先能解決大部分就行了。就是cookie,session也是存在同樣的安全問題,比如xss,csrf,重放攻擊等等,接口起碼的邏輯漏斗等。另外要用https。
添加回答
舉報(bào)