最近研究論壇裡那個微薄驗證授權的代碼:終於看懂了不過到官方網站一下,原來是一代oauth認證。不過也好,二代簡單了。呵呵。
* OAuth2.0不需要簽名了。之前所有的複雜的signatureBaseString計算、appSecret、 tokenSecret什麼的都成浮雲了,現在所有請求不需要簽名了。所有二版微博API都使用HTTPS了。
* 相對於1.0的Request_Token換Authorization_Code,Authorization_Code再換Access_Token的授權模式,2.0提供了一種更簡潔給力的授權碼方式:Authorization_Code直接換Access_Token模式。
所以OAuth2.0的登入API只有兩個oauth2/authorize和oauth2/accesstoken。其實之前之所以要多一個擷取Request_Token的步驟,主要是為了Server來認證Client(還記得申銀萬國嗎),看client是不是一個合法的註冊過的Client。
* 當然OAuth2.0不止一種授權模式,共有四種, 新浪微博實現了最主要的3種:授權碼式、使用者名稱密碼式、隱藏式。
授權碼式就是上面提到Authorization_Code直接換Access_Token模式,登入需兩步。
使用者名稱密碼式可實現一步登入(當然前提是使用者得信任你的app才會乖乖給你密碼)。
隱藏式也是一步登入,適用於JavaScript等指令碼語言做邏輯處理的web用戶端。
* OAuth2.0裡的Access_Token與1.0裡的不同。1.0裡包含3個欄位: UserID, AccessToken, AccessTokenSecret。2.0裡也包含3個欄位: AccessToken, (根據網友"U點意思"提供的情報,2.0的Access_Token欄位,每次返回的值不一樣。這與1.0中Access_Token欄位值永遠不變,是個很大的區別)
ExpiresIn(AccessToken的到期時間,按秒計,很短,預設可能是1個小時)
RefreshToken (AccessToken到期時,用來擷取新的AccessToken,具體做法是當使用AccessToken時收到類似TokenInvalid或者TokenExpired的錯誤時,調用oauth2/accesstoken介面傳遞RefreshToken以擷取新的AccessToken)
* OAuth2.0引入了Authorization Server的概念(越來越像微軟的WIF-Window Identity Model)。對於我們開發人員而言,沒必要區分Authorization
Server和Resource Server,我們看到的就是新浪微博Server。
* 使用OAuth2.0訪問新浪微博API更簡單了,只需要傳遞一個AccessToken值。
*
所有API只返回Json格式了,沒有XML格式的了。(這是為蝦米)