3 回答

TA貢獻1869條經驗 獲得超4個贊
為了實現RESTful,每個HTTP請求應自行攜帶足夠的信息,以便其接收者對其進行處理,以使其與HTTP的無狀態本質完全協調一致。
好的,我知道每條消息都會自動完成HTTP身份驗證-但是如何?
是的,用戶名和密碼隨每個請求一起發送。這樣做的常用方法是基本訪問身份驗證和摘要訪問身份驗證。是的,竊聽者可以捕獲用戶的憑據。因此,將使用傳輸層安全性(TLS)加密所有發送和接收的數據。
擁有一個接受GET請求的REST服務(例如,/ session)是否會很糟糕,您將在其中傳遞用戶名/密碼作為請求的一部分,如果身份驗證成功,則返回一個會話令牌,這可能然后與后續請求一起傳遞?從REST的角度來看這是否有意義,還是缺少這一點?
因為它帶有狀態,所以它不是RESTful的,但是它很常見,因為它為用戶提供了便利。用戶不必每次都登錄。
您在“會話令牌”中描述的內容通常稱為登錄cookie。例如,如果您嘗試登錄到Yahoo !!帳戶中有一個復選框,上面寫著“讓我保持登錄狀態2周”。這實際上是(用您的話)說:“如果我成功登錄,則使我的會話令牌存活2周。” Web瀏覽器將隨您要求的每個HTTP請求一起發送此類登錄cookie(可能還有其他)。

TA貢獻2011條經驗 獲得超2個贊
REST服務要求對每個HTTP請求進行身份驗證并不罕見。例如,Amazon S3要求每個請求都具有從用戶憑證,要執行的確切請求以及當前時間派生的簽名。該簽名易于在客戶端進行計算,可以由服務器快速驗證,并且對于攔截該簽名的攻擊者使用有限(因為它基于當前時間)。

TA貢獻1821條經驗 獲得超6個贊
許多人不太清楚REST原理,使用會話令牌并不意味著您總是有狀態,每個請求發送用戶名/密碼的原因僅用于身份驗證,并且用于發送令牌(通過登錄生成)流程)只是為了確定客戶端是否具有請求數據的權限,只有在使用用戶名/密碼或會話令牌來確定要顯示的數據時,您才違反REST的要求!取而代之的是,您只能將它們用于衰弱(顯示數據或不顯示數據)
在您的情況下,我說是,這是RESTy,但請嘗試避免在REST API中使用本機php會話,并開始生成自己的哈希令牌,這些令牌在確定的時間段內到期!
- 3 回答
- 0 關注
- 585 瀏覽
添加回答
舉報