2011-09-22 67 views
0

我的GAE網站應該與第三方網站進行通信(即應該使用它的API)。 該第三方站點需要HTTP摘要式身份驗證。 爲了支持我用下面的頭,它工作得很好:如何通過GAE保持第三方的站點憑證?

headers={'Authorization': 'Basic %s' % base64.b64encode('login:pass')} 

我如何檢查是否對端授權仍然有效,如果不是的話,我應該怎樣要求用戶輸入用戶名和再次通過?

回答

1

如果驗證細節無效,該站點將返回一個401 Unauthorized響應。檢查有效性的唯一方法是提出請求 - 任何請求 - 並查看您是否獲得401.

如何提示用戶更新憑據完全取決於您的應用程序,它的設計方式以及您的用戶是。

+0

謝謝。當第一次授權發生時,我是否收到一些相同的細節?即有效期?看起來最好的方法是將結果base64數據保存在memcache中一段時間​​,並在每個請求中使用它。一旦memcache數據已經不可用 - 請求用戶再次輸入。 –

+0

@LA_否 - HTTP身份驗證沒有實現任何類型的範圍等。服務器沒有理由甚至有一個無限期 - 你發送用戶名和密碼(並因此認證新)與每個新的請求。我不建議僅依靠memcache來存儲數據 - 將其作爲備份存儲在數據存儲中。 –

+0

謝謝,尼克。我認爲最好的方法是將其存儲在用戶的Cookie中 - http://stackoverflow.com/questions/7544197/how-to-set-cookies-with-gae-python-for-1-month –