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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

开放平台_OAuth2.0

發布時間:2025/3/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开放平台_OAuth2.0 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么出現oauth2.0

?

1 oauth1.0對手機客戶端,移動設備等非server第三方的支持不好。其實oauth1.0也是可以支持手機客戶端,移動設備等,也有相應的流程。但是oauth1.0是將多種流程合并成了一種,而事實證明,這種合并的流程體驗性非常差

2 oauth1.0的三步認證過程比較繁瑣和復雜,對第三方開發者增加了極大的開發難度

3 oauth1.0的加密需求過于復雜,第三方開發者使用oauth之前需要花費精力先實現oauth1.0的加密算法

4 oauth1.0的拓展性不夠好

5 oauth1.0生成的access_token要求是永久有效的,這導致的問題是網站的安全性和破壞網站的架構

?

因此出現了oauth2.0

?

oauth2.0針對1.0的各種問題提供了解決方法:

1 oauth2.0提出了多種流程,各個客戶端按照實際情況選擇不同的流程來獲取access_token。這樣就解決了對移動設備等第三方的支持,也解決了拓展性的問題

2 oauth2.0刪除了繁瑣的加密算法。利用了https傳輸對認證的安全性進行了保證

3 oauth2.0的認證流程一般只有2步,對開發者來說,減輕了負擔

4 oauth2.0提出了access_token的更新方案,獲取access_token的同時也獲取refresh_token, access_token是有過期時間的,refresh_token的過期時間較長,這樣能隨時使用refresh_tokenaccess_token進行更新

oauth2.0的現狀

?

oauth2.0截止到2011/8/31 為止已經發布更新了20個版本,下面是oauth2.0ietf標準文檔:

http://tools.ietf.org/html/draft-ietf-oauth-v2-20

?

oauth2.0得到了越來越多大公司的支持,比如microsoftyahoo等,也在實際使用過程中不斷得到優化和完善,oauth2.0已經成為了業界通用和使用的標準。

?

oauth2.0的實現

?

oauth2.0有許多種流程,分別適應不同的第三方應用,并且這些流程數目還在不斷增加和完善中,一個網站可以實現一種或多種流程

?

比如最典型的6中流程有 :

?

User-Agent Flow 客戶端運行于用戶代理內(典型如web瀏覽器)。

Web Server Flow 客戶端是web服務器程序的一部分,通過http request接入,這是OAuth 1.0提供的流程的簡化版本。

Device Flow 適用于客戶端在受限設備上執行操作,但是終端用戶單獨接入另一臺電腦或者設備的瀏覽器

Username and Password Flow 這個流程的應用場景是,用戶信任客戶端處理身份憑據,但是仍然不希望客戶端儲存他們的用戶名和密碼,這個流程僅在用戶高度信任客戶端時才適用。

Client Credentials Flow 客戶端適用它的身份憑據去獲取access token,這個流程支持2-legged OAuth的場景。

Assertion Flow 客戶端用assertion去換取access token,比如SAML assertion。

?

?

以開心網為例(開心網是實現了oauth2.0的第10個版本)

?

開心網實現了

Web Server Flow

User-Agent Flow

Username and Password Flow

三種方式

?

http://wiki.open.kaixin001.com/index.php?id=OAuth2.0%E6%96%87%E6%A1%A3

?

oauth2.0的客戶端實現是非常方便的,開心網的說明文檔也已經非常全了,這里就不多說了

?

下面說一下各個流程的步驟:

?

Web Server Flow

web ServerFlow是把oauth1.0的三個步驟縮略為兩個步驟

?

首先這個是適合有server的第三方使用的。

1客戶端http請求authorize

2服務端接收到authorize請求,返回用戶登陸框頁面

3用戶在客戶端登陸

4服務器端將瀏覽器定位到callbackurl,并同時傳遞Authorization Code

5客戶端使用https發送access_token

6服務器端收到access_token請求,驗證Authorization Code---生成access_token, refresh_token,和過期時間--access_tokenrefresh_token和過期時間入庫

7 返回access_tokenrefresh_token,過期時間

8 用戶使用HTTPS+ access_token請求開放平臺接口

?

User-Agent:

適合所有無server端配合的客戶端

1客戶端http請求authorize

2服務端接收到authorize請求,返回用戶登陸框頁面

3用戶在客戶端登陸

4服務器端將瀏覽器定位到callbackurl,并同時傳遞access_token和過期時間

?

這里面的access_token可以考慮放在緩存中而不是放在數據庫中,一旦過期時間到就可以作廢了

?

Username and Password Flow

適合所有情況

1 客戶端https請求access_token(使用https是由于參數中帶著開心網的用戶名和密碼信息)2 服務器端收到access_token請求---生成access_token, refresh_token,和過期時間--access_tokenrefresh_token和過期時間入庫

3 json返回access_token, refresh_token,和過期時間

?

特別說明:

oauth2.0客戶端得到access_token之后是使用https來調用請求的,這樣做的目的主要是放重放和數據泄露?

?

參考文檔:

http://djb4ke.iteye.com/blog/683153

http://oauth.net/2/

http://hueniverse.com/2010/05/introducing-oauth-2-0/

http://wiki.open.kaixin001.com/index.php?id=OAuth2.0%E6%96%87%E6%A1%A3?

?

作者:軒脈刃(yjf512)?
出處:(http://www.cnblogs.com/yjf512/)?
版權聲明:本文的版權歸作者與博客園共有。歡迎轉載閱讀,轉載時須注明本文的詳細鏈接。
?

總結

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

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