為了理解OAuth的適用場合,讓我舉一個假設的例子。
有一個"云沖印"的網站,可以將用戶儲存在Google的照片,沖印出來。用戶為了使用該服務,必須讓"云沖印"讀取自己儲存在Google上的照片。

問題是只有得到用戶的授權,Google才會同意"云沖印"讀取這些照片。那么,"云沖印"怎樣獲得用戶的授權呢?
傳統方法是,用戶將自己的Google用戶名和密碼,告訴"云沖印",后者就可以讀取用戶的照片了。這樣的做法有以下幾個嚴重的缺點。
> (1)"云沖印"為了后續的服務,會保存用戶的密碼,這樣很不安全。
>
> (2)Google不得不部署密碼登錄,而我們知道,單純的密碼登錄并不安全。
>
> (3)"云沖印"擁有了獲取用戶儲存在Google所有資料的權力,用戶沒法限制"云沖印"獲得授權的范圍和有效期。
>
> (4)用戶只有修改密碼,才能收回賦予"云沖印"的權力。但是這樣做,會使得其他所有獲得用戶授權的第三方應用程序全部失效。
>
> (5)只要有一個第三方應用程序被破解,就會導致用戶密碼泄漏,以及所有被密碼保護的數據泄漏。
OAuth就是為了解決上面這些問題而誕生的。