2014-02-18 72 views
0

因此,REST體系結構實現了GET,POST,PUTDELETE請求。我想談談GET的請求。 http://example.com/api/students這是一個根據REST體系結構的GET請求,它會給我一個數據庫中的學生列表。對GET請求上的RESTful API進行身份驗證

我的問題是關於認證。它似乎是最好的方式,對GET請求驗證是通過使用Access Token,像http://example.com/api/students?token=randomstring

這是怎麼處理的服務器端,我的意思是secuencial過程中,要防止有人竊取其他用戶的訪問令牌和使用它。是否刷新每個請求上的令牌,並返回結果或類似的東西?

回答

0

首先 - 你不應該把憑據(訪問令牌)放在URL中。它本身並不完全錯誤或被禁止 - 它只是不好的做法,因爲它不可能在不公開URL的情況下分享URL(想想如果將URL複製到電子郵件並將其發送給朋友會發生什麼)。 URL中的憑證只是簡單地將它們輕易地暴露給其他人。

取出令牌並將其填充到HTTP授權標頭中 - 這就是我們擁有它的原因。有很多不同的方式來使用該頭,但在你的情況下,你會想使用「承載」令牌方法。下面是從RFC(http://tools.ietf.org/html/rfc6750)的例子:

GET /api/students HTTP/1.1 
Host: example.com 
Authorization: Bearer rAndomSTRiNg 

在你做其他事情之前檢查令牌的有效性的服務器。爲防止他人竊取它,您需要在連接上執行SSL/TLS。

令牌可能需要刷新 - 但這取決於您如何獲得它以及您的其他基礎架構。通常,您不需要爲每個請求刷新它 - 僅在特定時間過期後纔會刷新它。

您可能想看看OAuth2,它定義了獲取訪問令牌的四種基本方式。