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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

微服务开放平台接口设计

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

什么是開(kāi)放平臺(tái)接口

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

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

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

什么是Oauth2.0

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

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

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

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

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

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

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

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

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

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

Oauth2授權(quán)原理

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

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

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

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

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

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

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

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

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

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

?

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

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

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

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

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

?

SpringCloud Oauth2

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

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

Spring Cloud oauth2 需要依賴Spring security

?Oauth2角色劃分

1、Resource Server:被授權(quán)訪問(wè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、簡(jiǎn)化模式(implicit)用在移動(dòng)app或者web app(這些app是在用戶的設(shè)備上的,如 在手機(jī)上調(diào)起微信來(lái)進(jìn)行認(rèn)證授權(quán))

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

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

?

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

?

?

QQ開(kāi)放平臺(tái)地址: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é)

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

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