2016-11-05 15 views
0

詳細信息似乎很難在此找到。所以我的情況是使用用戶名和密碼的現有服務器。我添加了一個額外的couchdb服務器來管理移動應用程序的數據,但是我仍然希望通過現有服務器處理所有身份驗證。 所以我可以發送一個帶有用戶名和密碼的HTTP請求到現有的服務器,我可以讓它發送任何我喜歡的東西,如果訪問被接受。那我如何使用這些信息來驗證couchdb服務器? 我想我們可以從現有的服務器上接收到一個祕密,我們可以將其與我們手動存儲在couchdb服務器上的服務器進行匹配。但是,這似乎不是很安全。使用第二臺服務器的Couchdb身份驗證

我已閱讀了couchdb的身份驗證文檔,但我仍然感到困惑。對認證系統有何建議?

+0

一個解決方案可能是在訪問CouchDB服務器之上使用代理或層。這將會更慢,但驗證處理將集中處理。 –

+0

謝謝。我沒有這方面的專業知識,但它可能是未來的選擇。我只是在努力理解couchDb中的代理身份驗證。它應該給你像Cookie認證API的會話訪問? –

+0

基本上我希望它完全像這樣,但與CouchDB。 https://firebase.google.com/docs/auth/web/custom-auth –

回答

0

我認爲JWT認證就是您要找的。有一個插件可以爲你做到這一點:https://github.com/dmunch/couch_jwt_auth(該存儲庫是一個分叉,實現原來的附加功能,加上與CouchDB 2.0兼容。)

基本上你發送你的用戶名/密碼到認證服務器,反過來給你回一個令牌(智威湯遜)。您現在可以使用此令牌對CouchDB進行身份驗證。 CouchDB通過使用共享密鑰(HS256)或使用認證服務器的公鑰來驗證令牌的完整性。

+0

謝謝,看起來像我所需要的。然而,我確實設法通過將用戶名和共享密鑰(通過HMAC-SHA1編碼)從認證服務器發送到couchDB來獲得CouchDB代理驗證。我設法在couchdb 1.6.1中做到這一點,但在2.0中它看起來像是壞了。 –