日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微服务开放平台接口设计

發(fā)布時間:2023/12/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微服务开放平台接口设计 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是開放平臺接口

在一些大型互聯(lián)網(wǎng)公司,隨著公司的業(yè)務(wù)發(fā)展逐漸龐大,需要和外部合伙伙伴進行合作,需要將公司的接口開放給外部其他合伙伙伴進行調(diào)用。

比如騰訊的?QQ互聯(lián)網(wǎng)、微信開放平臺、螞蟻金服開放平臺?、釘釘開放平臺、微博開放平臺,比如實現(xiàn)功能QQ聯(lián)合登陸、微信掃碼登陸比如騰訊QQ互聯(lián)網(wǎng)、微信開放平臺、螞蟻金服開放平臺?、微博開放平臺,比如實現(xiàn)功能QQ聯(lián)合登陸、微信掃碼登陸。

還有就是在大型集團公司中,分為總公司,和旗下多個分公司,總公司與分公司相互通訊也可以采用開放平臺形式對接口進行授權(quán)。

什么是Oauth2.0

OAuth: OAuth(開放授權(quán))是一個開放標(biāo)準(zhǔn),允許用戶授權(quán)第三方網(wǎng)站訪問他們存儲在另外的服務(wù)提供者上的信息,而不需要將用戶名和密碼提供給第三方網(wǎng)站或分享他們數(shù)據(jù)的所有內(nèi)容。

QQ登錄OAuth2.0:對于用戶相關(guān)的OpenAPI(例如獲取用戶信息,動態(tài)同步,照片,日志,分享等),為了保護用戶數(shù)據(jù)的安全和隱私,第三方網(wǎng)站訪問用戶數(shù)據(jù)前都需要顯式的向用戶征求授權(quán)。
QQ登錄OAuth2.0采用OAuth2.0標(biāo)準(zhǔn)協(xié)議來進行用戶身份驗證和獲取用戶授權(quán),相對于之前的?OAuth1.0協(xié)議,其認(rèn)證流程更簡單和安全。

在開放平臺接口設(shè)計中,遵循Oauth2.0認(rèn)證授權(quán)協(xié)議 JWT。

QQ授權(quán)用到的字段屬性介紹:

appid:應(yīng)用的唯一標(biāo)識。在OAuth2.0認(rèn)證過程中,appid的值即為oauth_consumer_key的值。商戶號? ?永久不能進行修改的,就像我們的身份證號一樣。

appkey:appid對應(yīng)的密鑰,訪問用戶資源時用來驗證應(yīng)用的合法性。在OAuth2.0認(rèn)證過程中,appkey的值即為oauth_consumer_secret的值。商戶密鑰?這個可以進行修改,但是應(yīng)該注意修改過之后進行同步的問題。

授權(quán)碼Code:獲取accessToken。

accessToken:調(diào)用接口權(quán)限訪問令牌。

回調(diào)地址:授權(quán)成功之后,重定向的地址。

openId:開放平臺生產(chǎn)唯一的用戶Id。

Oauth2授權(quán)原理

OAuth認(rèn)證和授權(quán)的過程如下:

1、用戶訪問第三方網(wǎng)站網(wǎng)站,想對用戶存放在服務(wù)商的某些資源進行操作。

2、第三方網(wǎng)站向服務(wù)商請求一個臨時令牌。

3、服務(wù)商驗證第三方網(wǎng)站的身份后,授予一個臨時令牌。

4、第三方網(wǎng)站獲得臨時令牌后,將用戶導(dǎo)向至服務(wù)商的授權(quán)頁面請求用戶授權(quán),然后這個過程中將臨時令牌和第三方網(wǎng)站的返回地址發(fā)送給服務(wù)商。

5、用戶在服務(wù)商的授權(quán)頁面上輸入自己的用戶名和密碼,授權(quán)第三方網(wǎng)站訪問所相應(yīng)的資源。

6、授權(quán)成功后,服務(wù)商將用戶導(dǎo)向第三方網(wǎng)站的返回地址。

7、第三方網(wǎng)站根據(jù)臨時令牌從服務(wù)商那里獲取訪問令牌。

8、服務(wù)商根據(jù)令牌和用戶的授權(quán)情況授予第三方網(wǎng)站訪問令牌。

9、第三方網(wǎng)站使用獲取到的訪問令牌訪問存放在服務(wù)商的對應(yīng)的用戶資源。

?

QQ聯(lián)合登錄的流程

1、 生成授權(quán)Code鏈接,獲取授權(quán)碼

2、 根據(jù)用戶獲取的授權(quán)碼,獲取對應(yīng)的AccessToken

3、 根據(jù)AccessToken獲取對應(yīng)的openId

4、 根據(jù)openId獲取對應(yīng)的用戶信息

?

SpringCloud Oauth2

在Spring Cloud需要使用oauth2來實現(xiàn)多個微服務(wù)的統(tǒng)一認(rèn)證授權(quán),通過向OAUTH服務(wù)發(fā)送某個類型的grant type進行集中認(rèn)證和授權(quán),從而獲得access_token,而這個token是受其他微服務(wù)信任的,我們在后續(xù)的訪問可以通過access_token來進行,從而實現(xiàn)了微服務(wù)的統(tǒng)一認(rèn)證授權(quán)。

客戶端根據(jù)約定的ClientID、ClientSecret、Scope來從Access Token URL地址獲取AccessToken,并經(jīng)過AuthURL認(rèn)證,用得到的AccessToken來訪問其他資源接口。

Spring Cloud oauth2 需要依賴Spring security

?Oauth2角色劃分

1、Resource Server:被授權(quán)訪問的資源

2、Authotization Server:OAuth認(rèn)證授權(quán)中心

3、Resource Owner: 用戶

4、Client:使用API的客戶端(如Android 、IOS、web app)

OAuth2四種授權(quán)方式

1、授權(quán)碼模式(authorization code)用在客戶端與服務(wù)端應(yīng)用之間授權(quán),做授權(quán)使用。

2、簡化模式(implicit)用在移動app或者web app(這些app是在用戶的設(shè)備上的,如 在手機上調(diào)起微信來進行認(rèn)證授權(quán))

3、密碼模式(resource owner password credentials)應(yīng)用直接都是受信任的(都是由一家公司開發(fā)的),使用密碼進行驗證登錄的。

4、客戶端模式(client credentials)用在應(yīng)用API訪問

?

項目整合授權(quán)認(rèn)認(rèn)證中心程圖

?

?

QQ開放平臺地址:http://wiki.connect.qq.com/

源碼地址:https://gitee.com/MingTian-NiHao/springboot-oauht2.0

轉(zhuǎn)載于:https://www.cnblogs.com/ming-blogs/p/11025797.html

總結(jié)

以上是生活随笔為你收集整理的微服务开放平台接口设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。