我一直在成功使用Facebook Graph API(使用oauth 2.0進行身份驗證)。我現在需要編寫我自己的API,它允許開發人員以類似的方式連接到它。我已經看過各種圖書館,但我想要一些更精簡的東西,所以我決定推出自己的。看看我必須在Facebook上驗證用戶身份的代碼,它看起來相對簡單,但請糾正我,如果我走了軌道。爲我的API實現OAuth 2.0身份驗證
首先我需要提供一個消費者需要重定向到的安全頁面。例如https://api.mydomain.com/oauth/authorize?client_id=CONSUMER_KEY&redirect_url=CALLBACK_URL。用戶將驗證應用程序,然後我將重定向回查詢字符串中的oauth_token回調URL中提供的url。我想我可以在這裏爲oauth_token生成一個隨機的唯一字符串,並針對這個特定的消費者存儲它(編輯:請參閱下面的答案,這應該是每個消費者應用程序而不是用戶唯一的)。
這是第一步。我現在需要提供第二個安全頁面,用戶可以觸發Web請求。例如https://api.mydomain.com/oauth/access_token?client_id=CONSUMER_KEY&client_secret=CONSUMER_SECRET&oauth_token=OAUTH_TOKEN_RETURNED_ABOVE。這將允許消費者將上面返回的oauth_token交換爲訪問令牌。我會再次簡單地生成一個隨機的唯一字符串並將其存儲在針對此特定消費者的用戶中。
現在我的API將接受access_token,以獲取試圖獲取特定於正在使用它的用戶的信息的方法。
我想知道我是否理解正確。如果是這種情況,OAuth 2.0規範看起來非常微不足道。另外爲什麼我們必須用access_token來交換oauth_token?我有我自己的想法,但我會很感激,如果有人可以幫助澄清這一點。
我真的很感激你的反饋,因爲我不想繼續前進,浪費數小時來完成這個工作,當它完全錯誤時。
感謝