詳細的定義能夠看wiki,下面舉個例子說說個人理解網站
如今不少網站均可以用第三方的帳號登錄,好比,如今我要登陸淘寶
買東西,而若是我沒有淘寶的帳號,我也能夠用微博
的帳號登陸,這個微博帳號就是第三方帳號了。code
OpenID強調 驗證 authentication
,而OAuth強調 受權 authorization
。 驗證就是說「我」是否是
(微博用戶),而受權是說「淘寶」可不能夠
,而可不能夠
的前提則是「我」是否是
。對象
好啦,我屁顛屁顛輸入帳號跟密碼,若是能夠登陸說明我這個身份是對的,經過了微博的驗證後微博就告訴淘寶說,沒錯沒錯,我家裏確實有麼這個傢伙ip
上面這些都是OpenID的責任,並且OpenID也只作這件事,就是前面說的是否是
get
因此,淘寶一般就會作一件事,什麼事呢?這時就輪到OAuth出場了,淘寶在把我交給微博驗明正身的時候其實還「忽悠「了我,明明只是驗個身份,卻問我要不要把我在微博家叫什麼名作過什麼事也告訴它(就是一般看到的幾個打勾選項:容許訪問個人暱稱
/容許訪問個人頭像
等等),淘寶說這樣就能夠爲我提供更多的服務,什麼服務呢?模凌兩可,我呢看到有更多服務也沒多想就打勾了,不要白不要是吧。io
這裏就用到了OAuth,就是前面說的可不能夠
,這個要是真發現我在微博家幹過的事,會不會把我加入重點監控對象,那就要看淘寶有多少節操了微博
其實如今不少的第三方登陸都是這樣,驗證身份的同時順便把你在其餘地方的資料拿到手,名曰資料共享,其實共享一些非敏感信息倒也無妨,還能夠免去了每去一個新網站都要填寫一大堆重複資料的問題。可是我要吐槽的是,不少網站明明讓我用第三方帳號登陸,你都OAuth了爲毛登陸後還要再填一遍郵箱暱稱之類的東西?早知道這樣我還不如直接在你這邊註冊就行了,在我看來這是用戶體驗的問題了。登錄
寫這些其實就是想用簡單通俗的語言來解釋這二者的區別(旁邊哥們怒了:那你爲毛還這麼囉嗦!囉嗦!嗦! 哎呀~個人耳朵個人耳朵…)監控
以上,不對的地方請指正,謝謝!用戶體驗