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

資訊專(zhuān)欄INFORMATION COLUMN

一個(gè)簡(jiǎn)單的用戶登錄與訪問(wèn)權(quán)限控制設(shè)計(jì)

hersion / 2663人閱讀

摘要:本文信息本文創(chuàng)建于文章更名為一個(gè)簡(jiǎn)單的用戶登錄與訪問(wèn)權(quán)限控制設(shè)計(jì)前述系統(tǒng)用戶分為管理員用戶普通用戶管理員用戶有且唯一系統(tǒng)初始狀態(tài)不存咋任何用戶首次使用需創(chuàng)建用戶前端界面顯示控制用戶管理模塊根據(jù)本地判斷是否為管理員用戶顯示不顯示用戶管理模塊導(dǎo)

本文信息

本文創(chuàng)建于2018/03/22

2018/10/30 文章更名為 一個(gè)簡(jiǎn)單的用戶登錄與訪問(wèn)權(quán)限控制設(shè)計(jì)

前述

系統(tǒng)用戶分為管理員用戶、普通用戶

管理員用戶有且唯一

系統(tǒng)初始狀態(tài)不存咋任何用戶,首次使用需創(chuàng)建用戶(admin)

前端界面顯示控制 用戶管理模塊

根據(jù)本地credentials判斷是否為管理員用戶 => 顯示/不顯示用戶管理模塊

導(dǎo)航欄模塊

功能頁(yè)面顯示導(dǎo)航欄;welcome/login不顯示導(dǎo)航欄

動(dòng)態(tài)控制導(dǎo)航欄的顯示與隱藏

前端本地控制(進(jìn)入頁(yè)面前)-- 路由守衛(wèi) welcome/login頁(yè)面

是否本地存在credentials(包含token及用戶信息)(是否屬于已登錄狀態(tài)) => 跳轉(zhuǎn)至首頁(yè)/Next

發(fā)送請(qǐng)求至后端 => 后端確認(rèn)是否首次使用系統(tǒng)(系統(tǒng)有/無(wú)任何用戶)=> welcome/login頁(yè)面

功能頁(yè)面

是否本地存在credentials(是否屬于已登錄狀態(tài)) => 進(jìn)入功能頁(yè)面/跳轉(zhuǎn)至login

Admin頁(yè)面

是否本地存在credentials(是否屬于已登錄狀態(tài)) => Next/跳轉(zhuǎn)至login

本地credentials是否顯示用戶為管理員類(lèi)型 => 進(jìn)入Admin頁(yè)面/跳轉(zhuǎn)至404頁(yè)面

前端向后端請(qǐng)求驗(yàn)證(進(jìn)入頁(yè)面后)-- http攔截器 請(qǐng)求發(fā)送處理

每個(gè)heep請(qǐng)求在請(qǐng)求頭帶上本地credentials中的token

請(qǐng)求響應(yīng)處理

返回401狀態(tài)碼 => 刪除本地credentials(如果有),跳轉(zhuǎn)至login

否則,不做特殊處理

后端登錄與鑒權(quán) 登錄邏輯

后端接收到前端發(fā)送的用戶信息

將前端發(fā)送的用戶信息(密碼需在后端做hash處理)與數(shù)據(jù)庫(kù)用戶信息比對(duì)

若匹配,Next。若不匹配,返回incorrect/權(quán)限到期

緩存是否存在用戶登錄code(若不存在則生成隨機(jī)code并存入緩存)

簽入token,將用戶信息(id,type等)、code寫(xiě)入token的payload,并設(shè)定token有效期

返回用戶信息及token至前端

用戶身份一般鑒定

token解碼失?。喊o(wú)token、token過(guò)期、token的payload不包含需要的信息 => 返回401

token解碼 => 得到用戶信息(包括id、code等) => 對(duì)比code與緩存code是否一致 => Next/返回401

根據(jù)token得到的用戶信息判斷是否為管理員 => 鑒定成功/Next

非管理員檢測(cè)用戶是否已被刪除(用戶刪除只更改數(shù)據(jù)庫(kù)狀態(tài)而非數(shù)據(jù)庫(kù)刪除) => 返回401/鑒定成功

創(chuàng)建用戶鑒權(quán)

創(chuàng)建的是系統(tǒng)第一個(gè)用戶

后端接收到前端發(fā)送的創(chuàng)建的用戶信息 => 請(qǐng)求頭是否沒(méi)有攜帶token或是否創(chuàng)建的用戶類(lèi)型為管理員 => Next/返回401
判斷是否為首次使用系統(tǒng) => 創(chuàng)建用戶/返回401

創(chuàng)建的不是系統(tǒng)第一個(gè)用戶

后端接收到前端發(fā)送的創(chuàng)建的用戶信息 => 請(qǐng)求頭攜帶token => 判斷token本身是否過(guò)期 =>返回401/Next

解碼token => 解碼后拿到用戶信息 => 用戶是否為管理員且與緩存token比對(duì) => Next/返回401

創(chuàng)建用戶 => 創(chuàng)建用戶是否成功 => 返回success/Next

是否已存在同名用戶 => 返回已存在同名用戶提示/返回fail

修改用戶信息鑒權(quán)

用戶身份一般鑒定

若鑒定用戶為管理員,鑒權(quán)成功;否則,Next

鑒定需要修改的用戶信息是否為用戶自己 => Next/返回401

鑒定舊密碼是否正確 => 鑒權(quán)成功/返回舊密碼incorrect

刪除用戶鑒權(quán)

用戶身份一般鑒定

鑒定用戶為管理員 => 鑒權(quán)成功/Next

Tips

修改用戶密碼/刪除用戶成功后,刪除對(duì)應(yīng)用戶的緩存里的登錄code

why not cookie => 無(wú)狀態(tài)、防xss攻擊、api多端共用

如何跨域共享用戶登錄狀態(tài)

已經(jīng)使用了jwt,為何還需loggedin-code => tips1即為原因

包含第三方登錄的登錄模塊設(shè)計(jì)(OAuth協(xié)議)

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

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

相關(guān)文章

  • 不用 Spring Security 可否?試試這個(gè)小而美安全框架

    摘要:寫(xiě)在前面在一款應(yīng)用的整個(gè)生命周期,我們都會(huì)談及該應(yīng)用的數(shù)據(jù)安全問(wèn)題。用戶的合法性與數(shù)據(jù)的可見(jiàn)性是數(shù)據(jù)安全中非常重要的一部分。 寫(xiě)在前面 在一款應(yīng)用的整個(gè)生命周期,我們都會(huì)談及該應(yīng)用的數(shù)據(jù)安全問(wèn)題。用戶的合法性與數(shù)據(jù)的可見(jiàn)性是數(shù)據(jù)安全中非常重要的一部分。但是,一方面,不同的應(yīng)用對(duì)于數(shù)據(jù)的合法性和可見(jiàn)性要求的維度與粒度都有所區(qū)別;另一方面,以當(dāng)前微服務(wù)、多服務(wù)的架構(gòu)方式,如何共享Sessi...

    toddmark 評(píng)論0 收藏0
  • Yii2系列教程五:簡(jiǎn)單用戶權(quán)限管理

    摘要:原文來(lái)自上一篇文章講了用戶的注冊(cè),驗(yàn)證和登錄,這一篇文章按照約定來(lái)說(shuō)說(shuō)之中的用戶和權(quán)限控制。探尋上面的一些列設(shè)置和代碼更改,已經(jīng)實(shí)現(xiàn)了一小部分的用戶控制登錄的用戶才能發(fā)表。 原文來(lái)自: https://jellybool.com/post/programming-with-yii2-user-access-controls 上一篇文章講了用戶的注冊(cè),驗(yàn)證和登錄,這一篇文章按照...

    livem 評(píng)論0 收藏0
  • Spring Security

    摘要:框架具有輕便,開(kāi)源的優(yōu)點(diǎn),所以本譯見(jiàn)構(gòu)建用戶管理微服務(wù)五使用令牌和來(lái)實(shí)現(xiàn)身份驗(yàn)證往期譯見(jiàn)系列文章在賬號(hào)分享中持續(xù)連載,敬請(qǐng)查看在往期譯見(jiàn)系列的文章中,我們已經(jīng)建立了業(yè)務(wù)邏輯數(shù)據(jù)訪問(wèn)層和前端控制器但是忽略了對(duì)身份進(jìn)行驗(yàn)證。 重拾后端之Spring Boot(四):使用JWT和Spring Security保護(hù)REST API 重拾后端之Spring Boot(一):REST API的搭建...

    keelii 評(píng)論0 收藏0
  • 基于 Spring Session & Spring Security 微服務(wù)權(quán)限控制

    摘要:構(gòu)造函數(shù)的第一個(gè)參數(shù)是對(duì)象,所以可以自定義緩存對(duì)象。在微服務(wù)各個(gè)模塊獲取用戶的這些信息的方法如下略權(quán)限控制啟用基于方法的權(quán)限注解簡(jiǎn)單權(quán)限校驗(yàn)例如,刪除角色的接口,僅允許擁有權(quán)限的用戶訪問(wèn)。 showImg(https://segmentfault.com/img/remote/1460000019593311); 微服務(wù)架構(gòu) showImg(https://segmentfault.c...

    clasnake 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

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