本系列文之後也會置於個人網站
其實我原本是想要 RESTer 幹到底的哈?。
今天有一點是插話的。考慮到接下來幾天的內容,所使用到的工具會有點多樣,所以行前做個提醒。
首先,你最好了解:
諾對於Postman這類工具有所熟悉再好不過。但接者幾天會使用:
除此之外,如果熟悉Bash
的話同樣也有助於理解所有內容。此外還有可能會使用到 OAuth Tools 、 jwt.io 。(JWT的部分更有可能出現在之後關於Open-Id內容前後)
但其實,以上並非全部都是必須。最重要的是希望你能夠學習到OAuth本身的部分。
首先,起初的OAuth設計是基於HTTP的,但其實有相當多細節有多種方式實現。
接者,除了之前提到的客戶端、資源擁有者、受保護的資源(資源伺服器)外和授權伺服器外,客戶端又將拆分成前端客戶端與後端客戶端。
通常前端客戶端指的是瀏覽器;而後端客戶端是實際需要取得存取權杖(Access Token)的服務程式,通常也意味著其實是需要受保護的資源。
前端與後端有可能其實就是同一支程式;還有可能是不同程式外,更可以是沒有直接關係的程式。簡單整理一下:
而通常的行為流程如下:
RFC 6749的圖:
+--------+ +---------------+
| |--(A)- Authorization Request ->| Resource |
| | | Owner |
| |<-(B)-- Authorization Grant ---| |
| | +---------------+
| |
| | +---------------+
| |--(C)-- Authorization Grant -->| Authorization |
| Client | | Server |
| |<-(D)----- Access Token -------| |
| | +---------------+
| |
| | +---------------+
| |--(E)----- Access Token ------>| Resource |
| | | Server |
| |<-(F)--- Protected Resource ---| |
+--------+ +---------------+
Figure 1: Abstract Protocol Flow