前端用戶登錄系統(tǒng)小結(jié)

  1. 保證實(shí)現(xiàn)登錄的唯一性
    靠后端session來(lái)控制礼仗,將登錄者的id存在session會(huì)話中胖翰,比如session['user'],即在登錄的時(shí)候后臺(tái)設(shè)置session['user']=$loginUser($loginUser是從前端拿到的登錄賬號(hào)名變量壕曼,這里以php為例),這樣就在該用戶訪問期間一直對(duì)著這個(gè)用戶月褥,如果換成另一個(gè)用戶,session['user']會(huì)變成另一個(gè)用戶的id瓢喉,所以第一個(gè)用戶的session會(huì)話就會(huì)被中斷吓坚,這樣可以保證一個(gè)瀏覽器只能同時(shí)登錄一個(gè)用戶。
    這里需要理解的就是session是服務(wù)器為了區(qū)分當(dāng)前客戶端而為其分配的不同的“身份標(biāo)志”灯荧,然后客戶端每次向服務(wù)器發(fā)送請(qǐng)求的時(shí)候礁击,都帶上這個(gè)身份標(biāo)志服務(wù)器就知道是誰(shuí)發(fā)的了
  2. 關(guān)于驗(yàn)證
    盡量告訴用戶哪里出了問題,并提前預(yù)知用戶會(huì)做那些事情逗载,從而進(jìn)一步優(yōu)化體驗(yàn)
  • 用戶名為空或格式不對(duì)--提示錯(cuò)誤哆窿,清空密碼框,聚焦到用戶名
  • 用戶名不存在--同上
  • 密碼錯(cuò)誤 -- 提示錯(cuò)誤厉斟,清空密碼框挚躯,聚焦密碼框
  1. 狀態(tài)提示
    什么是狀態(tài)提示?有時(shí)候因?yàn)榫W(wǎng)絡(luò)原因擦秽,點(diǎn)擊提交 button 之后码荔,ajax 傳輸半天沒有響應(yīng),用戶等了半天頁(yè)面一點(diǎn)提示都沒有感挥,這個(gè)肯定會(huì)讓用戶焦急的缩搅。回頭看看 Gmail触幼,一個(gè)把 ajax 發(fā)揮到極致的 web應(yīng)用硼瓣,在用戶體驗(yàn)上做的也是相當(dāng)給力的,登錄郵箱的時(shí)候一個(gè) loading 動(dòng)畫置谦,旁邊還放了一個(gè)加載基本HTML(供慢速網(wǎng)絡(luò)使用)堂鲤,每一個(gè)操作都有提示,提示中還有一個(gè)撤銷操作的按鈕媒峡,數(shù)據(jù)進(jìn)行加載的時(shí)候瘟栖,如果加載時(shí)間過(guò)長(zhǎng),期間會(huì)進(jìn)行多次不同的提示谅阿,并在最后給出一個(gè)確切的結(jié)果半哟,對(duì)于一個(gè)登錄框而言,需要做到這些:
  • 一個(gè)明確的用于狀態(tài)提示的 box
  • 等待 3s奔穿,結(jié)果沒有出來(lái)镜沽,提示用戶繼續(xù)等待
  • 等待 6s,結(jié)果沒有出來(lái)贱田,提示用戶網(wǎng)絡(luò)不暢通
  • 設(shè)置 10s 為超時(shí)缅茉,并告知用戶提交表單失敗
    這些東西的實(shí)現(xiàn)并沒有太多的技術(shù)難度,但是可以給慢速網(wǎng)絡(luò)下的用戶帶來(lái)很好的體驗(yàn)和安全感男摧。
  1. 關(guān)于密碼傳輸混淆
    關(guān)于密碼前端的加密蔬墩,采用https才是解決問題最好的方法译打!雖然前端并不能真正阻擋那些想要攻擊網(wǎng)站的hacker,但是可以提高其攻擊的成本拇颅。
    詳細(xì)的探討可以參考鏈接

參考前端常用加密方法
參考MD5加密使用方法
參考MD5加密原理

最最基本的就是做一個(gè)混淆了:可以前后端共同定義一個(gè)對(duì)照庫(kù)奏司,加上時(shí)間戳,傳送給后端樟插,后端根據(jù)約定的庫(kù)和時(shí)間戳來(lái)處理韵洋。
同時(shí)提示 服務(wù)端也不要命文存儲(chǔ)密碼

  1. cookie
    cookie是客戶端保存用戶信息的一種機(jī)制,用來(lái)記錄客戶信息
    cookie中httponly:從安全的角度后端在setCookie的時(shí)候可以將其httponly屬性設(shè)置為true黄锤,此時(shí)cookie將無(wú)法通過(guò)腳本獲取搪缨、編輯,提高系統(tǒng)安全性鸵熟。
    cookie 也可以用于存儲(chǔ)用戶登錄狀態(tài) 存放session id (session是保存在服務(wù)端的一個(gè)數(shù)據(jù)結(jié)構(gòu)副编,用來(lái)跟蹤用戶狀態(tài))
    cookie 可以幫助實(shí)現(xiàn)記住密碼功能,當(dāng)用戶訪問網(wǎng)站的時(shí)候流强,網(wǎng)站的頁(yè)面腳本可以讀取這個(gè)信息痹届,自動(dòng)幫你把用戶名等信息填充。
    提示:對(duì)于系統(tǒng)安全要求比較高的系統(tǒng)打月,不建議做記住密碼功能队腐,無(wú)論密碼以何種形式保存,都是不安全的僵控。
  2. 關(guān)于用戶登錄后的的返回鍵
    登陸之后香到,跳轉(zhuǎn)到另外一個(gè)頁(yè)面,但是瀏覽器本身有前進(jìn)和后退的功能报破,有時(shí)點(diǎn)擊后退回導(dǎo)致頁(yè)面返回到之前的登錄頁(yè)面,但事實(shí)是用戶已經(jīng)登錄了千绪,所有頁(yè)面的狀態(tài)都應(yīng)該是已登錄的充易,不管什么情況下都不應(yīng)該讓用戶在看到這個(gè)頁(yè)面。
    此時(shí)不建議采用window.location.href荸型,這樣瀏覽器還是會(huì)記錄這個(gè)登錄歷史盹靴,應(yīng)該使用 window.location.replace,替換當(dāng)前歷史記錄瑞妇。
    如果你是用React-router來(lái)完成的可以參考我的另外一篇文章
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末稿静,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子辕狰,更是在濱河造成了極大的恐慌改备,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔓倍,死亡現(xiàn)場(chǎng)離奇詭異悬钳,居然都是意外死亡盐捷,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門默勾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)碉渡,“玉大人,你說(shuō)我怎么就攤上這事母剥≈团担” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵环疼,是天一觀的道長(zhǎng)习霹。 經(jīng)常有香客問我,道長(zhǎng)秦爆,這世上最難降的妖魔是什么序愚? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮等限,結(jié)果婚禮上爸吮,老公的妹妹穿的比我還像新娘。我一直安慰自己望门,他們只是感情好形娇,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著筹误,像睡著了一般桐早。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厨剪,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天哄酝,我揣著相機(jī)與錄音,去河邊找鬼祷膳。 笑死陶衅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的直晨。 我是一名探鬼主播搀军,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼勇皇!你這毒婦竟也來(lái)了罩句?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤敛摘,失蹤者是張志新(化名)和其女友劉穎门烂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體着撩,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诅福,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年匾委,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氓润。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赂乐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出咖气,到底是詐尸還是另有隱情挨措,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布崩溪,位于F島的核電站浅役,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏伶唯。R本人自食惡果不足惜觉既,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乳幸。 院中可真熱鬧瞪讼,春花似錦、人聲如沸粹断。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瓶埋。三九已至希柿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間养筒,已是汗流浹背曾撤。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晕粪,地道東北人盾戴。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像兵多,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子橄仆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容