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