注冊過程中經(jīng)歷的步驟和過程有以下幾點(diǎn):
?1.用戶輸入正確格式的郵箱、用戶名和密碼并點(diǎn)擊注冊。
?2.前端頁面判斷用戶輸入的信息的格式是否正確和合法。
?3.客戶端把這些信息提交至服務(wù)器端,服務(wù)器獲取全部內(nèi)容并提取需要的信息。
?4.服務(wù)器端對這些信息進(jìn)行再次的判斷,判斷用戶輸入的信息的格式是否正確和合法,以及與數(shù)據(jù)庫中的已有信息作比較,判斷相關(guān)信息是否已經(jīng)被注冊。
?5.若判斷后發(fā)現(xiàn)沒有問題,則返回客戶端HTTP狀態(tài)碼200表示注冊成功,并把新注冊用戶的信息寫入數(shù)據(jù)庫內(nèi),若發(fā)現(xiàn)問題,則返回HTTP狀態(tài)碼400和對應(yīng)的錯(cuò)誤信息表示注冊失敗。
登錄過程中經(jīng)歷的步驟和過程有以下幾點(diǎn):
?1.用戶輸入正確格式的用戶名和密碼并點(diǎn)擊登錄。
?2.前端頁面判斷用戶輸入的信息的格式是否正確和合法。
?3.客戶端把這些信息提交至服務(wù)器端,服務(wù)器獲取全部內(nèi)容并提取需要的信息。
?4.服務(wù)器端對這些信息進(jìn)行再次的判斷,判斷用戶輸入的信息的格式是否正確和合法,并與數(shù)據(jù)庫中的已注冊賬戶信息進(jìn)行核對,看看對應(yīng)的用戶名和密碼是否相等。
?5.若核對發(fā)現(xiàn)信息相等,則設(shè)置Cookie,并返回客戶端HTTP狀態(tài)碼200表示注冊成功,若核對失敗,則返回HTTP狀態(tài)碼401和對應(yīng)的錯(cuò)誤信息表示注冊失敗。
?6.客戶端若收到401狀態(tài)碼,則提示用戶登錄失敗,并展示對應(yīng)錯(cuò)誤信息,若收到200狀態(tài)碼,則帶上收到的Cookie對首頁的url發(fā)起請求。
?7.服務(wù)器收到請求后解析請求所攜帶的Cookie,提取出Cookie所包含的用戶的信息。
?8.把首頁中的部分公共信息更替為該用戶自己的個(gè)人信息,并把更替好的內(nèi)容返回給客戶端。
?9.客戶端向用戶展示返回的內(nèi)容。
??這里值得說明的是,前端可以不判斷和驗(yàn)證注冊以及登錄的內(nèi)容,但是后端必須要添加驗(yàn)證,因?yàn)橛脩艨梢酝ㄟ^在命令行使用curl發(fā)送請求,這樣會跨過瀏覽器的驗(yàn)證,因此后端的驗(yàn)證是必須要存在的。
Cookie:
??Cookie的作用就是識別用戶的身份,Cookie里面含有用戶的一些個(gè)人信息。其實(shí)Cookie還有另外一個(gè)作用,就是記錄歷史,一些購物網(wǎng)站的購物車就是應(yīng)用了這個(gè)作用。
關(guān)于Cookie的定義,我這里選擇摘錄方應(yīng)杭老師在知乎上的說法:
1. Cookie 是瀏覽器訪問服務(wù)器后,服務(wù)器傳給瀏覽器的一段數(shù)據(jù)。
2. 瀏覽器需要保存這段數(shù)據(jù),不得輕易刪除。
3. 此后每次瀏覽器訪問該服務(wù)器,都必須帶上這段數(shù)據(jù)。
而Cookie有著以下的特點(diǎn):
1.服務(wù)器通過set-Cookie響應(yīng)頭設(shè)置Cookie。
2.瀏覽器得到Cookie之后,每次請求都要帶上Cookie。
3.服務(wù)器讀取Cookie就知道登錄用戶的信息(例如email、用戶名等)。
??另外,Cookie是存在有效期的,默認(rèn)是20分鐘左右,之所以說左右,是因?yàn)榫唧w時(shí)間由瀏覽器自動決定,但是后端可以強(qiáng)制設(shè)置Cookie的有效期,設(shè)置方法請讀者自行查看Set-Cookie MDN
??最后,Cookie是可以修改的,因此存在著很大的安全隱患,需要通過一些手段來保證它的安全性。還有退出登錄的方法就是清除相關(guān)的cookies和session,這些內(nèi)容需要讀者自行去搜索,在這里就不再做詳細(xì)敘述了。
參考鏈接:
- http://www.itdecent.cn/p/58760ef27acd??作者:宣澤彬??來源:簡書