前言:最近討論園子里是否真末落的話題那可是沸沸揚揚啊!我就不湊這個熱鬧了!在此吐點最近在整的東西出來給大家!
I:OAuth 2.0 概述
首先大家來看看國內新浪跟騰訊這兩大頭對OAuth 2.0是怎么個用官方語言去闡述的:
新浪:OAuth2.0是從2006年開始設計OAuth協議的下一個版本,OAuth2.0同時提供Web,桌面和移動應用程序的支持,並較1.0相比整個授權驗證流程更簡單更安全。也是新浪微博開放平台未來最主要的用戶身份驗證和授權方式。
騰訊:騰訊微博開放平台,是基於騰訊微博系統,為廣大開發者和用戶提供的開放數據分享與傳播平台。
廣大開發者和用戶登錄平台后,就可以使用平台提供的開放API接口,創建應用從微博系統獲取信息,或將新的信息傳播到整個微博系統中,豐富多樣的API接口和應用,加上您的智慧,將創造出無窮的應用和樂趣。
在使用騰訊微博平台提供的API前,您需要做以下兩步工作:
成為開發者,並申請appkey和appsecret
授權獲取accesstoken
Accesstoken是第三方獲得用戶授權的憑證,是第三方訪問api資源的票據。目前,騰訊微博采用Oauth2.0協議對第三方進行授權,相對Oauth1.0來說,Oauth2.0具有更加簡單和安全特點。
相比之下我說一下我個人的理解!OAuth是一種允許你的應用訪問到騰訊微博,新浪微博開放平台上的用戶數據,而且是在不需要取得用戶個人密碼的情況下。所以可以說OAuth 2.0是一個互聯網標准協議(OAuth 2.0基於https)。
II:OAuth 2.0在國內支持的授權方式
1.Authorization Code方式(新浪,騰訊都支持)
Authorization Code授權方式是專門提供給第三方WEB應用的。目前國內的新浪微博,騰訊開放平台都支持Authorization Code授權方式,下面我將發布一些圖片讓大家對於這種授權方式有一種更為直觀的了解。
進入我的測試站時。如果用戶已經有了新浪微博或騰訊微博的賬戶那么他可以直接點擊下面的鏈接進行跳轉授權驗證。如下圖
從上圖的地址欄信息可以知道~~用戶的密碼始終沒有對我的第三方應用暴露。
當用戶對我的第三方應用授權了以后,我將可以很輕松地讀取用戶個人信息和發送測試微博。
騰訊接口返回的用戶信息
新浪微博返回的用戶信息
發送的測試微博信息
以上的登陸授權示例就是我推薦使用的Authorization Code授權方式
在這個模式下AccessToken沒有透露在地址欄上~用戶密碼也沒有暴露在我的第三方應用當中!這里可以看出OAuth2.0相比OAuth1.0來說更簡單,更安全(https)
2.Resource Owner Password Credentials方式(新浪支持)
樓主不研究這個,因為這個是新浪提供的。騰訊微博未發現支持這種這么犀利的驗證方式,居然允許第三方應用取得用戶密碼。。。。
3.Implicit Grant方式(新浪,騰訊都支持)
樓主也不研究這個,因為這個方式允許AccessToken暴露在用戶的Url上。
III:總結
好了,博主dotNetDR_目前只在Web開發當中運用到OAuth 2.0,所以這個系列往后也只涉及OAuth2.0里面的Authorization Code驗證授權模式,除了它以外的OAuth 2.0其他授權模式各位同學有需要的話請自行研究。
項目代碼截圖
謝謝,本文到此結束!