2012-09-23 148 views
1

我正在用Python開發一個Python應用程序,我有多個用戶,每個用戶都有自己的資源。用戶訪問限制網站

我想知道的是,如果用戶A的資源位於/A/resource/我如何限制對該用戶的訪問B

我在想通過使用cookie來做什麼,但我想知道是否有更好的方法。

回答

0

如果使用用戶提供的服務:

https://developers.google.com/appengine/docs/python/gettingstarted/usingusers

您可以利用的安全性,谷歌提供在等

然後爲每個資源,跟蹤什麼是「用戶」擁有它簽署和只向該用戶和該用戶單獨提供服務。

user = users.get_current_user() 
if user == valid_user_for_this_resource: 
    #serve resource 
else: 
    #deny access 

否則,您可以推出自己的登錄服務並進行驗證。

+0

我正在運行我自己的日誌記錄服務。我想知道的是如何驗證訪問該資源的用戶擁有它。只通過cookies? – coredump

+0

不確定您的意思是「記錄服務」(登錄服務!)。我做了一個類似的系統,其中每個用戶的資源文件也包含創建該資源的用戶。然後當資源被要求時,我通過用戶服務檢查當前登錄用戶,將其與資源的「所有者」進行比較,如果它們匹配,則將其提供。如果你想使用cookies,那麼或許看看webapp2會話,然後重新實現它可能會容易得多。 http://webapp-improved.appspot.com/api/webapp2_extras/sessions.html –

+0

不,不是「僅通過cookies」 - 您可以通過多種方式進行操作。您可以創建一個特殊的唯一URL(通過UUID調用),僅向資源所有者提供 - 默默無聞的安全性。這實際上與Cookie不同。我可以複製您的Cookie並假裝成爲您,我可以複製該唯一的URL並假裝爲您,但我無法從用戶服務複製您的用戶ID並假裝爲您,我必須登錄.... –