OAuth2.0簡單筆記(四種授權模式)
金天:堅持寫東西,不是一件容易的事,換句話說其實堅持本身都不是一件容易的事。如果學習有捷徑,那就是不斷實踐,不斷積累。寫筆記,其實是給自己看的,是體現積累的一種方式,要堅持。
OAuth2.0已經大行其道,本文僅僅作為個人備忘記錄。
作為OAuth2.0客戶端,需要注意一下幾點:
1. OAuth2.0 Server Side支持幾種授權方式
2. 作為用戶OAuth2.0的客戶端, 你打算使用那種授權方式
一直提倡看官方文檔一手文檔,如果想對OAuth2.0有比較透徹的理解,他的規范RFC是必看的,雖然母語為非英語,還是建議新手可以看看原汁原味的OAuth2.0 的RFC是怎么寫。克服不必要的恐懼或者懶惰,看多了,自能領會看一手文檔的好處。
四種授權模式:
1. 授權碼(認證碼)模式 (Authorization code) response_type=code
2. 簡化(隱形)模式 (Impilict) response_type=token
3. 用戶名密碼模式 (Resource Owner Password Credential) grant_type=password
4. 客戶端模式 (Client Credential) grant_type=client_credential
OAuth2.0的核心既是取得access_token,四種授權模式殊途同歸,最終都是要取得access_token,只是路徑不同,參數不同,具體可以參考RFC.
另外下面推薦了兩個OAuth2.0服務端的實現,一個是PHP,一個是.NET的,筆者用這兩種語言最多,特意找了這個實現比較完備的解決方案。實踐是學習的捷徑,跟智商沒有太大關系。
[RFC]http://tools.ietf.org/html/rfc6749