假如我要架設一個網站、平台,裡面的功能要有會員才能用,但我又不希望使用者需要額外記帳號密碼,則可以使用Open ID,讓使用者利用"其他平台的帳號"來創建自己的身分。
這樣的好處,是我們不需要記住使用者的密碼等資訊,那些是記在別人家。使用者不必擔心說,某個地方的網站被駭,就要統統換密碼 (畢竟很多人在各個地方都用同一組密碼。)
我這個網站、系統、APP,不需要會員的身分,但我需要使用其他網站、系統上的東西,所以我必須有取得那些功能的權限。
我的這個應用程式、網頁 (假設是一個加工廠),我可能提供數個有支援的 (擁有材料的) 其他系統、網站 (倉庫),假如使用者想使用其中一個網站上面的資料、內容,但我們沒有權限 (倉庫大門的鑰匙),那我們會先讓使用者登入系統 (倉庫),選擇我們需要提供的權限給我們 (材料房的鑰匙,但不給辦公室的鑰匙),這樣我們就可以利用材料去幫使用者做他們想要的功能、服務。
阿誠今天想要使用 Dropbox 的空間,他必須擁有 Dropbox 的帳號,而 Dropbox 提供了直接註冊 or 以Google 帳號註冊 兩種選項。
很剛好阿誠也已經擁有了 Google 的帳號,他也不想要另外再記一組帳號密碼,所以選擇了後者。
讚讚讚,現在阿誠可以用 Dropbox 會員的身分,去使用空間了~ 可喜可樂!
因為阿誠家裡沒有印表機,所以在家裡傳了一些要印的文件、圖片上去 Dropbox的硬碟空間。
隔天到了研究室,想利用研究室的印表機把那些檔案印出來。
阿誠先下載了印表機的APP,印表機並不需要阿誠辦會員,就可以直接提供功能給阿誠用,真是佛心來著
但是它需要取得阿誠想印的檔案(這個印表機有支援取得 Dropbox 空間的內容)
印表機:Dropbox 把阿誠的檔案列表給我吧 ~
Dropbox:你誰阿你? 我幹嘛給你他的資料? 它資料的大門就在這,你去取得 鑰匙 就能拿到資料,我給你 *登入(註1)的地方及對於鑰匙的要求(註2),如果你真的是幫阿誠做事,叫他自己拿鑰匙給你。
印表機:阿誠,Dropbox叫你先登入會員,然後把鑰匙給我,它才讓我幫你做事情。
阿誠:OKOK
>根據註一登入會員 (Open ID)
>根據註二上所需要的權限,產生鑰匙 (OAuth)
阿誠:安安 印表機 鑰匙在這,去吧去吧 ~
印表機:Dropbox 鑰匙在這,讓我進去吧 ~
(鑰匙真的可以開門)
Dropbox:OK 門打開了,去吧 ~
接下來,印表機拿著鑰匙去幫阿誠把他要的檔案印出來 ~ (利用OAuth去做事情)
阿誠順利的交了作業,可喜可樂 ~
OpenID versus OAuth from the user’s perspective (http://cakebaker.42dh.com/2008/04/01/openid-versus-oauth-from-the-users-perspective/)
What's the difference between OpenID and OAuth? (https://stackoverflow.com/questions/1087031/whats-the-difference-between-openid-and-oauth)
Getting Started (https://oauth.net/getting-started/)
漫談OAuth認證協定與運作流程 (http://cire.pixnet.net/blog/post/30810748-漫談oauth認證協定與運作流程)
OAuth 2.0 筆記 (1) 世界觀 (https://blog.yorkxin.org/2013/09/30/oauth2-1-introduction.html)