加密您需要的所有內容,並將其作爲base64會話添加到cookie中。以下是序列...
1. WebApp: Send username and password
2. REST: Authenticate this using couch.
3. REST: Encrypt the session along with username password and create cookie, then base64 result.
4. REST: Send cookie to WebApp.
5. WebApp: Alway sends cookie back to REST layer.
6. REST layer has everything it needs to authenticate the user.
在上面的REST層將狀態傳遞給WebApp,它從WebApp中獲得所需的狀態。客戶端無法解密它,因此它很安全。然後,客戶端將該令牌作爲cookie傳遞迴REST層,然後使用該層獲取需要進行身份驗證的詳細信息。
您可以很容易地加密幾百個字節,不會遇到任何標頭或Cookie大小限制。不要在加密之前或之後對它進行壓縮,出於安全原因以及之後的 之前,因爲加密後的數據壓縮不好。如果任何人擔心表現,那麼就會對它進行基準測試,但我已經使用了比Rust更慢的語言。上面的一個變種是使用memcached ie ...
1. WebApp: Send username and password
2. REST: Authenticate this using couch.
3. REST: Store Couch session in memcahed along with username password and create cookie. The cookie is the key to memcached.
4. REST: Send cookie to WebApp.
5. WebApp: Alway sends cookie back to REST layer.
6. REST: Get details from memcached.
我已經使用這種技術使用標題和cookie,它的工作就像一個魅力。我假設你正在使用的東西,以防止XSRF等
你可以混合和匹配以上,以滿足您的應用需求。
是沙發的REST層部分還是它是一個獨立的堆棧,即Java/Tomcat或PHP/Apache等? – Harry
@哈里獨立堆棧(Rust)。 – jgillich
這使事情變得更容易。 – Harry