摘要:當(dāng)?shù)倪^期時(shí)間被設(shè)定時(shí),設(shè)定的日期和時(shí)間只與客戶端相關(guān),而不是服務(wù)端。
前記
我將描述一下登陸和注冊(cè)之間發(fā)生了什么,將場(chǎng)景分為客戶端和服務(wù)端,服務(wù)器是Node.JS,客戶端是由JS寫的
注冊(cè) 1、注冊(cè)請(qǐng)求這是由客戶端發(fā)送一個(gè)POST請(qǐng)求給服務(wù)端,其中包含了用戶名和密碼
let $form = $("#signUpForm") $form.on("submit", (e)=>{ e.preventDefault() let hash = {} let need = ["email", "password", "password_confirmation"] need.forEach((name)=>{ let value = $form.find(`[name=${name}]`).val() hash[name] = value }) $form.find(".error").each((index, span)=>{ $(span).text("") }) $.post("/sign_up", hash) .then((response)=>{ console.log(response) }, (request)=>{ let {errors} = request.responseJSON if(errors.email && errors.email === "invalid"){ $form.find("[name="email"]").siblings(".error") .text("郵箱格式錯(cuò)誤") } }) })2、服務(wù)器檢查
服務(wù)器需要檢查發(fā)送過來的用戶名是否注冊(cè)過,如果注冊(cè)過就返回失敗,如果沒有注冊(cè)過就寫入數(shù)據(jù)庫(kù)
3、返回寫入數(shù)據(jù)庫(kù)成功,就將注冊(cè)成功返回給用戶
登錄 1、輸入賬號(hào)密碼輸入賬號(hào)密碼,并用POST發(fā)送給服務(wù)器,可以檢查輸入格式
let $form = $("#signInForm") $form.on("submit", (e) => { e.preventDefault() let hash = {} let need = ["email", "password"] need.forEach((name) => { let value = $form.find(`[name=${name}]`).val() hash[name] = value }) $form.find(".error").each((index, span) => { $(span).text("") }) $.post("/sign_in", hash) .then((response) => { window.location.href = "/" }, (request) => { alert("郵箱與密碼不匹配") }) })2、服務(wù)器檢查
獲取賬號(hào)密碼,服務(wù)器查詢數(shù)據(jù)庫(kù),看是否有對(duì)應(yīng)的賬號(hào)存在
3、返回如果有對(duì)應(yīng)的存在就返回登錄成功,如果沒有,就返回登錄失敗
Cookie在上面的注冊(cè)和登錄過程中會(huì)有一些問題,網(wǎng)站是如何判斷登錄與否的,有些頁面只有登錄才可以訪問,另外,如何來確認(rèn)登錄的是誰,這樣才不會(huì)搞混亂,這時(shí)就需要引入Cookie來解決這些問題
設(shè)置Cookie在登錄的一瞬間,服務(wù)器通過Set-Cookie,例如
response.setHeader("Set-Cookie", `sign_in_email=${email}`)
告訴瀏覽器,在這個(gè)用戶上做了個(gè)標(biāo)記,以后只要相同的源的請(qǐng)求都會(huì)帶上這個(gè)Cookie,服務(wù)器Set-Cookie的是什么,瀏覽器Cookie就會(huì)是什么。
期限Cookie并不是永久有效的,就像游樂場(chǎng)的門票一樣,你在游樂場(chǎng)去任何地方都需要這張門票,但是這個(gè)門票會(huì)有期限,這個(gè)期限可以自己設(shè)置,和關(guān)閉瀏覽器便失效的會(huì)話期Cookie不同,持久性Cookie可以指定一個(gè)特定的過期時(shí)間(Expires)或有效期(Max-Age)。
response.setHeader("Set-Cookie", `id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT`)
當(dāng)Cookie的過期時(shí)間被設(shè)定時(shí),設(shè)定的日期和時(shí)間只與客戶端相關(guān),而不是服務(wù)端。
特點(diǎn)服務(wù)器通過Set-Cookie響應(yīng)頭來設(shè)置Cookie
瀏覽器得到Cookie后,每次請(qǐng)求都會(huì)帶上Cookie
服務(wù)器讀取Cookie就知道登錄用戶的信息
Cookie存在電腦上的一個(gè)秘密的文件位置
Cookie并不安全,可以做假
Cookie有效期的默認(rèn)時(shí)間由瀏覽器決定,后端可以強(qiáng)制設(shè)置
不同瀏覽器上的Cookie不可以互通
關(guān)于Cookie的更多信息,可以在MDN上查看
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/108250.html
摘要:當(dāng)?shù)倪^期時(shí)間被設(shè)定時(shí),設(shè)定的日期和時(shí)間只與客戶端相關(guān),而不是服務(wù)端。 前記 我將描述一下登陸和注冊(cè)之間發(fā)生了什么,將場(chǎng)景分為客戶端和服務(wù)端,服務(wù)器是Node.JS,客戶端是由JS寫的 注冊(cè) 1、注冊(cè)請(qǐng)求 這是由客戶端發(fā)送一個(gè)POST請(qǐng)求給服務(wù)端,其中包含了用戶名和密碼 let $form = $(#signUpForm) $form.on(submit, (e)=>{ ...
摘要:需要注意的細(xì)節(jié)問題為什么前后端都要進(jìn)行表單驗(yàn)證前后端都要驗(yàn)證郵箱格式是否正確,賬號(hào)密碼格式是否正確,兩次提交的密碼是否相同等。因?yàn)楹诳涂梢岳@過前端的驗(yàn)證流程,例如黑客可以直接使用進(jìn)行請(qǐng)求的發(fā)送,直接與后臺(tái)服務(wù)器進(jìn)行交互。 這篇文章是前一篇文章(Cookie理論知識(shí))的實(shí)踐性理解 完整代碼: 完整代碼 Cookie在注冊(cè)登錄時(shí)的作用過程: 注冊(cè) 注冊(cè)時(shí)把賬號(hào)密碼寫入數(shù)據(jù)庫(kù) 登錄 第一次登...
摘要:為用戶提供授權(quán)以允許用戶操作非公開資源,有很多種方式。具體的代碼根據(jù)不同的授權(quán)方案而有所不同。使用授權(quán)原理利用來驗(yàn)證用戶,有兩種機(jī)制實(shí)現(xiàn)。使用來實(shí)現(xiàn)用戶授權(quán)主要用于簽發(fā)如果有將異步的簽名。 ? 在很多應(yīng)用中,我們都需要向服務(wù)端提供自己的身份憑證來獲得訪問一些非公開資源的授權(quán)。比如在一個(gè)博客平臺(tái),我們要修改自己的博客,那么服務(wù)端要求我們能夠證明 我是我 ,才會(huì)允許我們修改自己的...
摘要:為用戶提供授權(quán)以允許用戶操作非公開資源,有很多種方式。具體的代碼根據(jù)不同的授權(quán)方案而有所不同。使用授權(quán)原理利用來驗(yàn)證用戶,有兩種機(jī)制實(shí)現(xiàn)。使用來實(shí)現(xiàn)用戶授權(quán)主要用于簽發(fā)如果有將異步的簽名。注意這里的與之前用于簽發(fā)的應(yīng)該是同一個(gè)。 在很多應(yīng)用中,我們都需要向服務(wù)端提供自己的身份憑證來獲得訪問一些非公開資源的授權(quán)。比如在一個(gè)博客平臺(tái),我們要修改自己的博客,那么服務(wù)端要求我們能夠證明 我是...
摘要:搭建簡(jiǎn)單登錄注冊(cè)還是我又來了近來突然對(duì)數(shù)據(jù)庫(kù)和后臺(tái)有點(diǎn)感興趣就開始了漫長(zhǎng)的學(xué)習(xí)之路想想自己只是一個(gè)前端只會(huì)斯科瑞普所以就開始看看著看著突然發(fā)現(xiàn)和更配哦遂就開了我的之路由于我的表達(dá)能力有限下面的文章可能寫的不是那么詳細(xì)有看不懂的可以去我上看源 nodejs+mongodb搭建簡(jiǎn)單登錄注冊(cè) biu!biu!biu!還是我又來了!!! 近來突然對(duì)數(shù)據(jù)庫(kù)和后臺(tái)有點(diǎn)感興趣,就開始了漫長(zhǎng)的學(xué)習(xí)之...
閱讀 2443·2021-10-14 09:43
閱讀 2480·2021-09-09 09:34
閱讀 1627·2019-08-30 12:57
閱讀 1231·2019-08-29 14:16
閱讀 750·2019-08-26 12:13
閱讀 3226·2019-08-26 11:45
閱讀 2317·2019-08-23 16:18
閱讀 2691·2019-08-23 15:27