www.tjgcgs88.cn-狠狠久久亚洲欧美专区不卡,久久精品国产99久久无毒不卡,噼里啪啦国语版在线观看,zσzσzσ女人极品另类

  • <strike id="qgi8o"><td id="qgi8o"></td></strike>
  • <ul id="qgi8o"><acronym id="qgi8o"></acronym></ul>
  • <li id="qgi8o"></li>
    <ul id="qgi8o"></ul>
    <strike id="qgi8o"><rt id="qgi8o"></rt></strike>
    <ul id="qgi8o"><center id="qgi8o"></center></ul>
  • <kbd id="qgi8o"></kbd>

    【架構師(第四十二篇)】服務端開發(fā)之常用的登錄鑒權方式

    內容概括主要產(chǎn)出

    了解Web常用的登錄鑒權方式

    主要內容

    cookie和session

    JWT

    SSO和OAuth2

    關于短信驗證碼

    用戶體驗好,無需注冊,無需記住密碼

    驗證碼需要收費,所以需要防止惡意共計,惡意刷接口

    介紹Session登錄cookie做登錄校驗的過程

    前端輸入用戶名密碼,傳給后端

    后端驗證成功,返回信息時set-cookie

    接下來的所有接口訪問,都自動帶上cookie

    為何會有Session

    cookie只存儲userId,不暴露用戶信息

    用戶信息存儲在session中

    Session的優(yōu)點

    原理簡單,易于學習

    用戶信息存儲在服務端,可以快速封禁某個登錄的用戶

    Session的缺點

    占用服務端內存,有硬件成本

    多進程,多服務器時,不好同步,一般使用第三方redis存儲,成本高

    跨域傳遞cookie,需要特殊配置

    介紹JWT登錄

    JWT的全稱是JSON?WebToken

    JWT的過程

    前端輸入用戶名密碼,傳遞給后端

    后端驗證成功,返回一段token字符串,將用戶信息加密之后得到的結果

    前端獲取token之后,存儲下來

    以后訪問接口,都在header中攜帶這段token

    JWT的優(yōu)點

    不占用服務器內存

    多進程,多服務器,不受影響

    不受跨域限制

    JWT的缺點

    無法快速封禁登錄的用戶

    JWT和Session的重要區(qū)別

    JWT用戶信息存儲在客戶端

    Session用戶信息存儲在服務器端

    為何選擇JWT

    沒有快速封禁登錄用戶的需求

    JWT成本低,維護簡單

    需要考慮跨域的擴展性

    代碼演示

    安裝npm插件,koa-jwt、jsonwebjson

    封裝jwt中間件,并使用

    封裝loginCheck中間件

    相關的配置項,構造函數(shù)等

    安裝插件npmikoa-jwtjsonwebtoken-S

    封裝jwt中間件

    增加配置

    //src\config\constant.jsmodule.exports={//jwt秘鑰JWT_SECRET:'warbler_for-json#web$token',//jwt忽略默認驗證的path:全部忽略即可,需要登錄驗證的,用自己封裝的loginCheckJWT_IGNORE_PATH:[/\//],}

    封裝中間件

    //src\middlewares\jwt.jsconstjwtKoa=require('koa-jwt')const{JWT_SECRET,JWT_IGNORE_PATH}=require('../config/constant')constjwt=jwtKoa({secret:JWT_SECRET,//jwt秘鑰cookie:'jwt_token',//使用cookie存儲token}).unless({//定義哪些路由忽略jwt驗證path:JWT_IGNORE_PATH,})module.exports=jwt

    使用

    //src\app.jsconstjwt=require('./middlewares/jwt')//配置jwt中間件app.use(jwt)

    封裝JWT工具//src\utils\jwt.jsconstutil=require('util')constjwt=require('jsonwebtoken')//jwt密鑰const{JWT_SECRET}=require('../config/constant')//jwt過期時間const{jwtExpiresIn}=require('../config/index')constverify=util.promisify(jwt.verify)/***jwtverify解密*@param{string}tokentoken*/asyncfunctionjwtVerify(token){constdata=awaitverify(token.split('')[1],JWT_SECRET)//去掉前面的Bearerreturndata}/***jwtsign加密*@param{Object}datadata*/functionjwtSign(data){consttoken=jwt.sign(data,JWT_SECRET,{expiresIn:jwtExpiresIn})returntoken}//導出解密,加密兩個方法module.exports={jwtVerify,jwtSign,}

    封裝loginCheck中間件

    封裝數(shù)據(jù)模型

    //srces-model\index.js/***基礎模型,包括errnodata和message*/classBaseRes{constructor({errno,data,message}){this.errno=errnoif(data){this.data=data}if(message){this.message=message}}}/***執(zhí)行失敗的數(shù)據(jù)模型*/classErrorResextendsBaseRes{constructor({errno=-1,message='',data},addMessage=''){super({errno,message:addMessage?`${message}-${addMessage}`//有追加信息:message,data,})}}/***執(zhí)行成功的數(shù)據(jù)模型*/classSuccessResextendsBaseRes{constructor(data={}){super({errno:0,data,})}}module.exports={ErrorRes,SuccessRes,}

    封裝錯誤信息集合

    //srces-model\failInfo\error.jsmodule.exports={//統(tǒng)一錯誤處理serverErrorFailInfo:{errno:-1,message:'運行錯誤',},//404notFoundFailInfo:{errno:-2,message:'404NotFound',},}

    封裝中間件

    //src\middlewares\loginCheck.js//解密const{jwtVerify}=require('../utils/jwt')//執(zhí)行失敗的數(shù)據(jù)模型const{ErrorRes}=require('../res-model/index')//錯誤信息集合const{loginCheckFailInfo}=require('../res-model/failInfo/index')/***登錄校驗*@param{Object}ctxctx*@param{function}nextnext*/module.exports=asyncfunctionloginCheck(ctx,next){//失敗信息consterrRes=newErrorRes(loginCheckFailInfo)//獲取tokenconsttoken=ctx.header.authorizationif(!token){ctx.body=errResreturn}letflag=truetry{constuserInfo=awaitjwtVerify(token)deleteuserInfo.password//屏蔽密碼//驗證成功,獲取userInfoctx.userInfo=userInfo}catch(ex){flag=falsectx.body=errRes}if(flag){//繼續(xù)下一步awaitnext()}}

    介紹SSO和OAuth2

    SSO單點登錄

    OAuth2第三方鑒權

    使用cookie實現(xiàn)單點登錄

    簡單的,如果業(yè)務系統(tǒng)都在同一主域名下,比如wenku.baidu.com、tieba.baidu.com,就可以直接把cookiedomain設置為主域名baidu.com,百度也就是這么干的

    SSO

    OAuth2

    SSO是OAuth2的實際案例,其他常見的還有微信登錄,github登錄等,當涉及到第三方用戶登錄校驗時,都會使用OAuth2標準。

    原文:https://juejin.cn/post/7113190886875332638

    【架構師(第四十二篇)】服務端開發(fā)之常用的登錄鑒權方式
    OAuth2第三方鑒權 使用cookie實現(xiàn)單點登錄簡單的,如果業(yè)務系統(tǒng)都在同一主域名下,比如wenku.baidu.com、tieba.baidu.com,就可以直接把cookiedomain設置為主域名baidu.com,百度也就是這么干的 SSO OAuth2SSO是OAuth2的實際案例,其他常見的還有微信登錄,github登錄等,當涉及到第三方用戶登錄校驗時,都會...

    相關評說:

  • 姜盛15278051200: 一家公司正在開發(fā)一種無服務器Web應用程序,使用戶能夠與在線游戲...
    揭西縣并聯(lián): ______ 軟件工程師的技術要求是比較全面的,除了最基礎的編程語言(C語言/C++/JAVA等)、數(shù)據(jù)庫技術(SQL/ORACLE/DB2等)等,還有諸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技術.此外,關于網(wǎng)絡工程和軟件測試的其他技術也要有所涉獵.
  • 姜盛15278051200: Bi架構師是做什么的 -
    揭西縣并聯(lián): ______ 簡單點說,企業(yè)需要一個商務智能系統(tǒng)BI系統(tǒng)的時候 就需要一個技術比較全面,比較有經(jīng)驗的人員---架構師 , 來構架這個BI系統(tǒng), 從底層的數(shù)據(jù)抽取 再到數(shù)據(jù)倉庫的建立, 以及挖掘,還有前段展現(xiàn)等等, 負責整個系統(tǒng)的架構
  • 姜盛15278051200: 急急急42天去復查醫(yī)生開紅核婦潔洗液不知道怎么洗?萬能的寶媽們,
    揭西縣并聯(lián): ______ 如果現(xiàn)在還有惡露就不要洗里面,沒有就可以洗,倒開水冷溫了洗洗外面,不要冷水熱水摻和,早晚各洗一次,每次倒三瓶蓋洗液
  • 姜盛15278051200: 我老公42歲進一個星期發(fā)現(xiàn)指甲上有豎紋怎么?我老公42歲進一個星
    揭西縣并聯(lián): ______ 這個情況多由于鈣劑攝入不足或消耗過多引起的情況的.現(xiàn)在的情況建議到醫(yī)院檢查一下微量元素的情況,在明確屬于缺鈣的情況后就建議在醫(yī)生的指導下服用樂力鈣魚肝油做調節(jié)治療,同時注意適當?shù)亩喑砸恍┑澳倘忸愂澄?注意避免吃膨化食品,避免吃油炸食品為宜.
  • 姜盛15278051200: 系統(tǒng)分析師是什么職業(yè)?主要做什么工作? -
    揭西縣并聯(lián): ______ 系統(tǒng)分析師的基本職責是從事管理信息系統(tǒng)的定制、企業(yè)資源管理系統(tǒng)的設計開發(fā)及市場評估策劃,要求計算機或數(shù)理學或工科專業(yè)、本科以上學歷,能獨立翻譯、閱讀國外技術資料,能熟練運用一些編程語言進行軟件開發(fā)
  • 姜盛15278051200: 全棧工程師和架構師的區(qū)別 -
    揭西縣并聯(lián): ______ 軟件開發(fā)不能和建房子完全類比,軟件開發(fā)的設計和實施往往是分不開的,不可能有人畫好圖紙,再由人搬磚來實現(xiàn)代碼.全棧工程師和構架師并不存在高下之分,分工不同而,只不過成為構架師所需要掌握的知識更特殊,而且也更依賴經(jīng)驗....
  • 姜盛15278051200: 請問順產(chǎn)做月子要42天嗎?坐月子要注意哪些事項啊?為什么
    揭西縣并聯(lián): ______ 可以的,一般是在一個月以上就可以的,每個地方風俗都是不同的,坐月子應該多注意休息的,注意保暖了,不吃辛辣的食物的.
  • 姜盛15278051200: 以下哪種是當前比較常用的網(wǎng)絡應用程序開發(fā)體系結構() - 上學吧
    揭西縣并聯(lián): ______ 在尋找優(yōu)秀的指揮的時候,您首先要找的是一名優(yōu)秀的音樂演奏家.但并非每個音樂演奏家都能成為優(yōu)秀的指揮.架構師的專業(yè)發(fā)展方面也與此類似.越來越多的 IT 組織開...
  • 精品无人乱码高清在线观看| 美女裸奶100%无遮挡免费网站| 久久久精品国产亚州av| 人妻体内射精一区二区三四| 55夜色66夜色国产精品视频| 精品精品国产国产自在线| HD2中国成熟IPHONE69| 免费人妻精品一区二区三区| 亚洲AV无码国产综合专区| 欧美日韩国产免费一区二区三区|