[英]Questions About Consuming Your Own API with OAuth
我正在為我正在開發的項目構建一個RESTful API,我想讓主應用程序使用API,因為:
API將托管在子域https://api.example.com
,主Web應用程序將托管在根域https://example.com
。
從概念上講,我理解一切是如何工作的,但我的主要問題是如果認證流程將會發生變化。 通常第三方應用程序將:
https://api.example.com/request_token
獲取請求令牌 https://api.authenticate.com/authorize
上進行身份驗證 https://api.example.com/access_token
獲取訪問令牌 由於我控制兩個域,我可以做類似的事情:
https://www.example.com
上的登錄屏幕時獲取請求令牌 https://www.example.com
上的表單進行身份驗證,該表單調用與https://api.example.com/authorize
相同的代碼 第3步感覺它是錯的,因為會有重復的代碼,但不會讓我打開XSS攻擊是https://www.example.com
上的登錄表單將數據發送到https://api.example.com
因為它們在技術上是不同的域名?
我是不是太復雜了?
我遇到了同樣的問題並像這樣解決了。
1對於使用我的API的第三方應用,他們必須通過OAuth對所有請求進行身份驗證。
2對於我自己的第三方客戶端(移動設備,AIR等) - 他們使用OAuth,區別在於我允許這些客戶端和密碼直接在授權步驟中發送(因此我可以進行本機登錄對話)。 這是因為您的API通過SSL / HTTPS。
3對於我的Web應用程序,我使用cookie身份驗證來訪問API。 即,在登錄后,用戶可以簡單地調用API:urls並獲取JSON / XML。 很適合快速瀏覽API(盡管像APIGee這樣的真正API控制台在那里做得更好)。
我會說你有點過分復雜了。 如果您的代碼正確分離,您可以輕松地在應用程序的服務層上構建一個瘦REST層,同時讓應用程序的控制器成為服務層上的薄層。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.