上一篇是站在巨人的肩膀上去研究OAuth2.0,也是為了快速幫助大家認(rèn)識(shí)OAuth2.0,閑話少說(shuō),我根據(jù)框架中OAuth2.0的使用總結(jié),畫了一個(gè)簡(jiǎn)單的流程圖(根據(jù)用戶名+密碼實(shí)現(xiàn)OAuth2.0的登錄認(rèn)證):

上面的圖很清楚的描述了當(dāng)前登錄login的流程,現(xiàn)在我們針對(duì)于login做成相關(guān)的微服務(wù),解析如下:
請(qǐng)求方式:POST
服務(wù)URL:http://localhost:8080/user/login
參數(shù)類型:application/json
Headers:?
Content-Type:?application/json
? ? ? ? ? ? ?Authorization:?Basic QXkjkdkYkhfeyKOKKHUM67ejfjeSfnrRdk5nPT0=???Body:{
?????? "userName":"admin", ?---也可以是手機(jī)號(hào)碼等
??????"password": "e10adc3949ba59abbe56e057f20f883e" ?
}返回值類型:?application/json
返回的結(jié)果集: {
?"code": "200",
?"message": "Success",
?"version": "v1.0",
?"data": {
???"userInfo": {
?????"userId": "00001",
?????"pwd": "e10adc3949ba59abbe56e057f20f883e",
?????"userName": "admin",
?????"mobile": "15875500000",
?????"telephone": "",
?????"wechat": "",
?????"email": "xxx@qq.com",
?????"status": "1",
?????"createTime": "2017-06-26"
??? },
???"roleIds": "100",
???"tokenInfo": {
?????"accessToken":"4de55a69-e372-4766-acd3-1c419d6f2fda",
?????"tokenType": "bearer",
?????"webTokent":"uHSLjfJoQwU4t4PAqCzH1SN0fp7PUWKluPNS+x1dZ8R9Gx+NJkBI7w==",
?????"refreshToken":"d3d71594-5c3f-4a68-a7e5-b8d21c4fa73b",
?????"expiresIn": 34644,
?????"scope": "read write"
??? }
? }
}
備注:?
可以使用Postman工具進(jìn)行測(cè)試
框架設(shè)計(jì)思想: 提供獨(dú)立的commonservice-sso的微服務(wù)、提供
component-sso的依賴組件、提供針對(duì)于用戶登錄的微服務(wù)客戶端user-service微服務(wù)接口。
整個(gè)執(zhí)行的流程如下:
user-service ?---> ??commonservice-sso ?--->?component-sso
這里還沒(méi)有講解到服務(wù)網(wǎng)關(guān),后面會(huì)涉及到服務(wù)網(wǎng)關(guān)和sso單點(diǎn)登錄之間如何實(shí)現(xiàn)服務(wù)認(rèn)證和鑒權(quán)。

從現(xiàn)在開始,我這邊會(huì)將近期研發(fā)的spring cloud微服務(wù)云架構(gòu)的搭建過(guò)程和精髓記錄下來(lái),幫助更多有興趣研發(fā)spring cloud框架的朋友,大家來(lái)一起探討spring cloud架構(gòu)的搭建過(guò)程及如何運(yùn)用于企業(yè)項(xiàng)目。源碼來(lái)源