在上一篇博客中,自己動(dòng)手寫了一個(gè)Middleware來處理API的授權(quán)驗(yàn)證,現(xiàn)在就采用另外一種方式來處理這個(gè)授權(quán)驗(yàn)證的問題,畢竟現(xiàn)在也
有不少開源的東西可以用,今天用的是JWT。
什么是JWT呢?JWT的全稱是JSON WEB TOKENS,是一種自包含令牌格式。官方網(wǎng)址:https://jwt.io/,或多或少應(yīng)該都有聽過這個(gè)。
先來看看下面的兩個(gè)圖:
就像左圖展示的那樣,發(fā)起了請(qǐng)求但是拿不到想要的結(jié)果;當(dāng)站點(diǎn)先去授權(quán)服務(wù)器拿到了可以訪問api的access_token(令牌)后,再通過這個(gè)
access_token去訪問api,api才會(huì)返回受保護(hù)的數(shù)據(jù)資源。
這個(gè)就是基于令牌驗(yàn)證的大致流程了??梢钥闯鍪跈?quán)服務(wù)器占著一個(gè)很重要的地位。
下面先來看看授權(quán)服務(wù)器做了些什么并如何來實(shí)現(xiàn)一個(gè)簡(jiǎn)單的授權(quán)。
做了什么?授權(quán)服務(wù)器在整個(gè)過程中的作用是:接收客戶端發(fā)起申請(qǐng)access_token的請(qǐng)求,并校驗(yàn)其身份的合法性,最終返回一個(gè)包含
access_token的json字符串。
如何實(shí)現(xiàn)?我們還是離不開中間件這個(gè)東西。這次我們寫了一個(gè)TokenProviderMiddleware,主要是看看invoke方法和生成access_token
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26