用通俗的例子解釋OAuth和OpenID的區別【原】


  • 什么是OAuth(Wiki)
  • 什么是OpenID(Wiki)

詳細的定義可以看wiki,下面舉個例子說說我的理解

現在很多網站都可以用第三方的賬號登陸,比如,現在我要登錄淘寶買東西,而如果我沒有淘寶的賬號,我也可以用微博的賬號登錄,這個微博賬號就是第三方賬號了。

OpenID強調 驗證 authentication,而OAuth強調 授權 authorization。 驗證就是說“我”是不是(微博用戶),而授權是說“淘寶”可不可以,而可不可以的前提則是“我”是不是

過程大概是這樣

  1. 我點開微博登錄的鏈接,淘寶就跳到微博登錄頁面,問我你是不是那個微博用戶,是的話你用你的賬號密碼去登錄,你先去給微博驗明正身,是的話再來找我
  2. 好啦,我屁顛屁顛輸入賬號跟密碼,如果可以登錄說明我這個身份是對的,通過了微博的驗證后微博就告訴淘寶說,沒錯沒錯,我家里確實有么這個家伙

    上面這些都是OpenID的責任,而且OpenID也只做這件事,就是前面說的是不是

  3. 然后呢,淘寶就說好好,有你微博驗證我放心,於是就讓我通過了
  4. 等等,這時淘寶只知道微博他們家有我存在,但是並不知道我在微博家里叫什么名,做過什么事,其實淘寶也不應該知道,對吧,要是知道我在微博家老是到處舉報別人賣假貨坑顧客什么的,那我讓你進我大淘寶豈不是會壞了我的大事,你丫是來搗亂的吧(至於淘寶為什么會這么想,哼哼~你們懂的)
  5. 所以,淘寶通常就會做一件事,什么事呢?這時就輪到OAuth出場了,淘寶在把我交給微博驗明正身的時候其實還“忽悠“了我,明明只是驗個身份,卻問我要不要把我在微博家叫什么名做過什么事也告訴它(就是通常看到的幾個打勾選項:允許訪問我的昵稱/允許訪問我的頭像等等),淘寶說這樣就可以為我提供更多的服務,什么服務呢?模凌兩可,我呢看到有更多服務也沒多想就打勾了,不要白不要是吧。

    這里就用到了OAuth,就是前面說的可不可以,這個要是真發現我在微博家干過的事,會不會把我加入重點監控對象,那就要看淘寶有多少節操了

其實現在很多的第三方登錄都是這樣,驗證身份的同時順便把你在其他地方的資料拿到手,名曰資料共享,其實共享一些非敏感信息倒也無妨,還可以免去了每去一個新網站都要填寫一大堆重復資料的問題。但是我要吐槽的是,很多網站明明讓我用第三方賬號登錄,你都OAuth了為毛登錄后還要再填一遍郵箱昵稱之類的東西?早知道這樣我還不如直接在你這邊注冊就好了,在我看來這是用戶體驗的問題了。

寫這些其實就是想用簡單通俗的語言來解釋這兩者的區別(旁邊哥們怒了:那你為毛還這么啰嗦!啰嗦!嗦! 哎呀~我的耳朵我的耳朵…)

 

以上,不對的地方請指正,謝謝!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM