OAuth關注的是authorization;而OpenID側重的是authentication。從表面上看,這兩個英文單詞很容易混淆,但實際上,它們的含義有本質的區別:ide
- authorization: n. 受權,承認;批准,委任
- authentication: n. 證實;鑑定;證明
OAuth關注的是受權,即:「用戶能作什麼」;而OpenID關注的是證實,即:「用戶是誰」。下面就分別來講二者的功能。網站
OpenIDurl
- 用戶但願訪問其在example.com的帳戶
- example.com (在OpenID的黑話裏面被稱爲「Relying Party」) 提示用戶輸入他/她/它的OpenID
- 用戶給出了他的OpenID,好比說」http://user.myopenid.com」
- example.com 跳轉到了用戶的OpenID提供商「mypopenid.com」
- 用戶在」myopenid.com」(OpenID provider)提示的界面上輸入用戶名密碼登陸
- 「myopenid.com」 (OpenID provider) 問用戶是否要登陸到example.com
- 用戶贊成後,」myopenid.com」 (OpenID provider) 跳轉回example.com
- example.com 容許用戶訪問其賬號
OAuth插件
- 用戶在使用example.com時但願從mycontacts.com導入他的聯繫人
- example.com (在OAuth的黑話裏面叫「Consumer」)把用戶送往mycontacts.com (黑話是「Service Provider」)
- 用戶在mycontacts.com 登陸(可能也可能不用了他的OpenID)
- mycontacts.com問用戶是否是但願受權example.com訪問他在mycontact.com的聯繫人
- 用戶肯定
- mycontacts.com 把用戶送回example.com
- example.com 從mycontacts.com拿到聯繫人
- example.com 告訴用戶導入成功
OpenID是用來驗證的,就是說能夠用一個url來惟一代表身份(不用挨個記每一個網站的用戶密碼)。OAuth是用來受權的(俺能夠受權一個網站訪問俺在另一個網站的數據,而俺不用把俺的密碼給第一個網站。blog
不少人如今錯誤的把OAuth當作OpenID使用。可是其實也不會照成什麼影響。如水煮魚開發的WordPress插件:開發
![oauth](http://static.javashuo.com/static/loading.gif)
WordPress的評論只要求身份認證便可,無需權限認證。it