還記得前一陣子柯南介紹過的OAuth認證協定與運作流程嗎?
最近柯南研究起Facebook在F8開發者大會後更新的認證機制,
令人驚訝的是,
根據網頁的資料,
Facebook已經開始採用 OAuth 「2.0」的方式進行認證了。
因為OAuth 2.0目前仍在draft的狀態,
所以像Google或Yahoo這樣的公司目前主要仍使用OAuth 1.0的標準,
沒想到Facebook竟然速度很快地採用OAuth 2.0這個新版本標準了(據說Twitter也是使用OAuth 2.0)。
到底OAuth 2.0和1.0有什麼不同,
基本上概念是改進OAuth 1.0的缺點,
並簡化流程步驟,
讓開發者更容易上手,
更詳細的比較請參考http://hueniverse.com/2010/05/introducing-oauth-2-0/。
實際參考Facebook的開發者文件,
我只能說這Facebook版的OAuth 2.0,
真的是超容易就上手的。
只要四個步驟,就可以將認證機制做好。
1.連到http://developers.facebook.com/setup/或者http://www.facebook.com/#!/developers/createapp.php,
註冊我們的應用程式,並記下我的client_id。
2.在我們的登入頁面,顯示帶有以下變數url的連結。其中最重要的參物是redirect_uri與client_id。client_id由第1步驟取得,
而redirect_uri則是使用者成功登入後導回的網頁網址。
https://graph.facebook.com/oauth/authorize?
client_id=...&
redirect_uri=http://www.example.com/callback&
type=user_agent&
display=popup
3.當使用者認證並授權給我們的網站(或應用程式),Facebook就會將頁面導回第2步驟的redirect_uri。並帶有一個access token。
http://www.example.com/callback#access_token=...&expires_in=...
4.接著我們就可以利用類似下面的網址呼叫Facebook的Graph API。
https://graph.facebook.com/me?access_token=...&callback=myCallback
對照之前OAuth 1.0文章中的11個步驟,
這實在是簡化太多了。
Facebook將以上的流程,寫成了sdk,
不想自己純手工刻的朋友,
可以至http://github.com/facebook/php-sdk/參考。
留言列表