成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

注冊和登錄(關(guān)于Cookie)

jay_tian / 3038人閱讀

摘要:當(dāng)?shù)倪^期時(shí)間被設(shè)定時(shí),設(shè)定的日期和時(shí)間只與客戶端相關(guān),而不是服務(wù)端。

前記

我將描述一下登陸和注冊之間發(fā)生了什么,將場景分為客戶端和服務(wù)端,服務(wù)器是Node.JS,客戶端是由JS寫的

注冊 1、注冊請求

這是由客戶端發(fā)送一個(gè)POST請求給服務(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ā)送過來的用戶名是否注冊過,如果注冊過就返回失敗,如果沒有注冊過就寫入數(shù)據(jù)庫

3、返回

寫入數(shù)據(jù)庫成功,就將注冊成功返回給用戶

登錄 1、輸入賬號密碼

輸入賬號密碼,并用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ù)器檢查

獲取賬號密碼,服務(wù)器查詢數(shù)據(jù)庫,看是否有對應(yīng)的賬號存在

3、返回

如果有對應(yīng)的存在就返回登錄成功,如果沒有,就返回登錄失敗

Cookie

在上面的注冊和登錄過程中會有一些問題,網(wǎng)站是如何判斷登錄與否的,有些頁面只有登錄才可以訪問,另外,如何來確認(rèn)登錄的是誰,這樣才不會搞混亂,這時(shí)就需要引入Cookie來解決這些問題

設(shè)置Cookie

在登錄的一瞬間,服務(wù)器通過Set-Cookie,例如

        response.setHeader("Set-Cookie", `sign_in_email=${email}`)

告訴瀏覽器,在這個(gè)用戶上做了個(gè)標(biāo)記,以后只要相同的源的請求都會帶上這個(gè)Cookie,服務(wù)器Set-Cookie的是什么,瀏覽器Cookie就會是什么。

期限

Cookie并不是永久有效的,就像游樂場的門票一樣,你在游樂場去任何地方都需要這張門票,但是這個(gè)門票會有期限,這個(gè)期限可以自己設(shè)置,和關(guān)閉瀏覽器便失效的會話期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后,每次請求都會帶上Cookie

服務(wù)器讀取Cookie就知道登錄用戶的信息

Cookie存在電腦上的一個(gè)秘密的文件位置

Cookie并不安全,可以做假

Cookie有效期的默認(rèn)時(shí)間由瀏覽器決定,后端可以強(qiáng)制設(shè)置

不同瀏覽器上的Cookie不可以互通

關(guān)于Cookie的更多信息,可以在MDN上查看

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/52868.html

相關(guān)文章

  • 注冊登錄關(guān)于Cookie

    摘要:當(dāng)?shù)倪^期時(shí)間被設(shè)定時(shí),設(shè)定的日期和時(shí)間只與客戶端相關(guān),而不是服務(wù)端。 前記 我將描述一下登陸和注冊之間發(fā)生了什么,將場景分為客戶端和服務(wù)端,服務(wù)器是Node.JS,客戶端是由JS寫的 注冊 1、注冊請求 這是由客戶端發(fā)送一個(gè)POST請求給服務(wù)端,其中包含了用戶名和密碼 let $form = $(#signUpForm) $form.on(submit, (e)=>{ ...

    wthee 評論0 收藏0
  • 登錄注冊理解Cookie的作用過程

    摘要:需要注意的細(xì)節(jié)問題為什么前后端都要進(jìn)行表單驗(yàn)證前后端都要驗(yàn)證郵箱格式是否正確,賬號密碼格式是否正確,兩次提交的密碼是否相同等。因?yàn)楹诳涂梢岳@過前端的驗(yàn)證流程,例如黑客可以直接使用進(jìn)行請求的發(fā)送,直接與后臺服務(wù)器進(jìn)行交互。 這篇文章是前一篇文章(Cookie理論知識)的實(shí)踐性理解 完整代碼: 完整代碼 Cookie在注冊登錄時(shí)的作用過程: 注冊 注冊時(shí)把賬號密碼寫入數(shù)據(jù)庫 登錄 第一次登...

    cheng10 評論0 收藏0
  • JWT、OAuth 2.0、session 用戶授權(quán)實(shí)戰(zhàn)

    摘要:為用戶提供授權(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è)博客平臺,我們要修改自己的博客,那么服務(wù)端要求我們能夠證明 我是我 ,才會允許我們修改自己的...

    zhaot 評論0 收藏0
  • JWT、OAuth 2.0、session 用戶授權(quán)實(shí)戰(zhàn)

    摘要:為用戶提供授權(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è)博客平臺,我們要修改自己的博客,那么服務(wù)端要求我們能夠證明 我是...

    Jochen 評論0 收藏0
  • nodejs+mongodb構(gòu)建一個(gè)簡單登錄注冊功能

    摘要:搭建簡單登錄注冊還是我又來了近來突然對數(shù)據(jù)庫和后臺有點(diǎn)感興趣就開始了漫長的學(xué)習(xí)之路想想自己只是一個(gè)前端只會斯科瑞普所以就開始看看著看著突然發(fā)現(xiàn)和更配哦遂就開了我的之路由于我的表達(dá)能力有限下面的文章可能寫的不是那么詳細(xì)有看不懂的可以去我上看源 nodejs+mongodb搭建簡單登錄注冊 biu!biu!biu!還是我又來了!!! 近來突然對數(shù)據(jù)庫和后臺有點(diǎn)感興趣,就開始了漫長的學(xué)習(xí)之...

    yibinnn 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<