2010-04-29 12 views
17

爲什麼OAuth將訪問令牌和訪問令牌密碼都包含爲兩個單獨的值?作爲消費者或OAuth,我所見到的所有建議都表明我應該將令牌和祕密存儲在一起,並將它們作爲一種價值來對待。爲什麼OAuth同時提供訪問令牌和訪問令牌密鑰?爲什麼不只是一個單一的價值?

那麼爲什麼說明書首先需要兩個值?

+0

我可能回答了我自己的問題,但我懷疑原因是OAuth提供商的索引。提供者可以通過訪問令牌高效地查找記錄,然後驗證訪問令牌的祕密,而不必查找長且不可索引的組合。 – 2010-04-29 21:00:02

回答

21

實際上,訪問令牌密鑰永遠不會傳輸給提供者。相反,請求會傳輸訪問令牌,然後使用該密鑰來簽署請求。這就是爲什麼你需要:一個確定,一個確保安全

+0

但是爲什麼Twitter現在也讓我們傳送祕​​密呢?見https://dev.twitter.com/docs/auth/application-only-auth – 2014-03-12 16:57:56

+1

@JoshuaFrank不太清楚爲什麼。這可能是你想要在Twitter上直接引導的東西。但無論如何,需要注意的一點是,他們的方法**需要** SSL才能保證安全。 – yydl 2014-03-13 01:30:48

+0

關於SSL的好處,但後來我不明白爲什麼我們需要密鑰和祕密。 – 2014-03-13 09:37:34

0

有兩個祕密,一個是令牌祕密,另一個是消費者的祕密。祕密用於簽署請求(生成oauth簽名),但不在請求標頭中傳輸,在標頭中發送令牌以標識客戶端並驗證其是否具有訪問權限。

相關問題