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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringCloud 微服务开放平台接口

發布時間:2023/12/14 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringCloud 微服务开放平台接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是開放平臺接口

場景 :
總公司與子公司 對接接口 還有一些合作伙伴

總公司 提供接口
1、能夠獲取到哪個子公司調用
2、授權機制,能夠靈活控制接口調用權限。
例:阿里和順豐鬧矛盾,順豐把權限修改阿里巴巴就不能調用接口。

很多公司都有開放平臺接口可以供我們練習使用的哈哈:比如騰訊的QQ互聯網、微信開放平臺、螞蟻金服開放平臺 、微博開放平臺,比如實現功能QQ聯合登陸、微信掃碼登陸。都提供了相應的開放平臺。

訪問:https://github.com/spring-cloud/spring-cloud-security 源碼中有這個組件 幫助快速搭建開放平臺 實現授權流程

**OAuth2.0:**Oauth2.0(開放授權)是一個開放標準,允許用戶授權第三方網站訪問他們存儲在另外的服務器提供者上的信息,而不需要將用戶名和密碼提供給第三方網站或者分享他們數據的所有內容。

以QQ聯合登錄為例,它使用的就是oauth2.0協議,進行授權認證時通常有一下幾個步驟:
1.生成授權鏈接,獲取授權碼
2.使用授權碼獲取accessToken
3.使用accessToken獲取openId
4.使用openId獲取用戶信息

常見的開放平臺:
騰訊的QQ互聯、微信開放平臺、螞蟻金服開放平臺、微博開放平臺,可以實現QQ聯合登錄、微信掃碼登錄等第三方登錄功能。
QQ互聯開放平臺:https://wiki.connect.qq.com/準備工作_oauth2-0

OAuth2四種授權方式:
1、授權碼(認證碼)模式(Authorization code):用在客戶端與服務器端應用之間的授權,response_type=code
2、簡化(隱形)模式(Impilict):應用在移動app或者web app(在移動設備上的,如在手機中調用微信來進行認證授權),response_type=token
3、密碼模式(Resource Owner Password Credentials):應用直接都是受信的,如都是由同一家公司開發,grant_type=password
4、客戶端模式(Client Credentials):用在應用API訪問,grant_type=client_credential
一般情況下,1和3應用比較多,2都是應用在移動端,4應用不多

相關概念
appId (商戶號,給子公司或者合作商戶提供的)+ appKey(密鑰,驗證密鑰) (這倆配套的 都是必備的,并且appID永久不能改,appKey可以改)

Authorization code: 授權碼,用來獲取accessToken

accessToken: 調用接口權限訪問令牌

redirect_uri: 回調地址 授權成功 重定向地址 保證安全性 不要隨便拼接成別的地址

openId: 開放平臺生成唯一的id

二、調用QQ互聯

1、需要在qq互聯上面申請權限獲取appId和appKey

2、調用連接獲取授權碼
https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101462456&state=888&redirect_uri=http://mayikt.s1.natapp.cc/qqLoginBack
client_id就是申請的appId(商戶號),state是防止csrf攻擊的,隨機生成的
點擊授權登錄之后瀏覽地地址會變化

code即為授權碼(只要1分組有效期)

3、使用用戶獲取的授權碼,獲取對應的accessToken
獲取到授權碼之后,代表登錄成功了,但是不代表合作伙伴已經對接成功。 授權碼獲取accessToken,然后再去獲取openId,然后再去數據庫查詢關聯的openId。有的話直接登錄,沒有就需要關聯

https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=101462456&client_secret=4488033be77331e7cdcaed8ceadc10d5&code=E91DF5B0E2455A6B2AF25CD9FA1C7582&redirect_uri=http://mayikt.s1.natapp.cc/qqLoginBack
通過授權碼調用,grant_type就是為authorization_code
client_id為商戶號
client_secret為appKey
code就是授權碼
redirect_url:重定向地址,與前面保持一致

通過訪問這個地址就會獲取到 accessToken!! 拿到accessToken就可以調用接口了! (父公司可以通過 accessToken 逆向出 誰在調用我的接口。 在表里面accessToken和openId是關聯的(每個合作的網站域名是唯一的,一個域名一個openid的))

在Spring Cloud里面流程底層已經幫助實現了哈 只要關注表結構就OK了

4、使用accessToken獲取用戶openid
使用剛剛生成的accessToken
https://graph.qq.com/oauth2.0/me?access_token=B2FD1997D149313F16C93D91C75AC75E

獲取到 openId就可以獲取到用戶相關信息了,授權碼只能用一次! 授權了一段時間后就銷毀了。需要重新授權。

5、使用openId獲取用戶信息

https://graph.qq.com/user/get_user_info?access_token=B2FD1997D149313F16C93D91C75AC75E&oauth_consumer_key=101462456&openid=4B1717CBBFE1E900D2A1482C4A18B3BD

此時會返回各種用戶信息的~ 包括頭像 圖片之類的 性別 地址等等

三、原理分析

OAuth認證和授權的過程如下:
1、用戶訪問第三方網站網站(自公司),想對用戶存放在服務商的某些資源進行操作。
2、第三方網站(自公司)向服務商(父公司)請求一個臨時令牌。
3、服務商驗證第三方網站的身份后,授予一個臨時令牌。
4、第三方網站獲得臨時令牌后,將用戶導向至服務商的授權頁面請求用戶授權,然后這個過程中將臨時令牌和第三方網站的返回地址發送給服務商。
5、用戶在服務商的授權頁面上輸入自己的用戶名和密碼,授權第三方網站訪問所相應的資源。
6、授權成功后,服務商將用戶導向第三方網站的返回地址。
7、第三方網站根據臨時令牌從服務商那里獲取訪問令牌。
8、服務商根據令牌和用戶的授權情況授予第三方網站訪問令牌。
9、第三方網站使用獲取到的訪問令牌訪問存放在服務商的對應的用戶資源。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。