2016-01-21 58 views
1

在開發了我的第一個Web門戶(使用railstutorial.org)之後,我現在正在建立我的第一個API(有一些幫助)。API身份驗證:將令牌放置在Cookie或標頭中?

門戶網站的認證與session以及cookie(如果用戶希望他的登錄被記住)一起使用。

對於API我明白使用session是不安全的;你只需要使用令牌。因此,就像門戶網站一樣,當用戶登錄到API時,他的憑證將被檢查,如果它們有效,則會生成將摘要存儲到數據庫的令牌。

但後來我知道有那麼三個選項做什麼用的令牌:存儲使用餅乾在用戶的計算機上的令牌,包括令牌參數或使用HTTP標頭。我使用HTTP標頭閱讀API是首選選項。

  • 如果使用餅乾,這是相同的門戶網站的「記住我」選項:令牌被存儲在cookie中和令牌的摘要被存儲在數據庫中。每個API請求都會讀取cookie,並檢查它的標記是否與摘要匹配。
  • 每次API向用戶發送數據或用戶向API發出調用時,該令牌都將作爲參數包含在內。我知道這會在URL中顯示令牌,這是不可取的。
  • 我對使用HTTP標頭的理解失敗。

使用HTTP標頭髮送令牌而不是cookie是什麼意思?它背後的過程/邏輯是什麼?何時使用cookie,參數或HTTP頭?
我的理解是正確的:每次API向用戶發送數據時,它都應該在HTTP頭中包含令牌?用戶對API的每個調用應該包含相同的標記?

回答

0

你應該看看cookie是如何工作的。設置cookie也會向客戶端發送標準化的http頭。當客戶端發送請求時,他們可以將cookie與請求一起發送。

還有一個在軌的HTTP令牌的標準:Link這也是請求