2010-02-19 46 views
1

我正在構建一個應用程序,我想嘗試使用authkit進行身份驗證和授權。但是,我知道我將使用swfupload,並且將無法依賴通過Flash傳遞的auth cookie。在過去,我從頭開始推出自己的cookie/auth解決方案,但我很想避免這樣做。如何使用Cookie和/或GET/POST參數進行authkit身份驗證?

有沒有辦法配置authkit.authenticate.cookie回退到POSTGET參數如果沒有找到cookie?或者是否有一種簡單的方法在form, cookieredirect, cookie方法的頂部添加此功能?

回答

1

就在今天我遇到了同樣的問題。人們似乎正在使用的最常見解決方案是將Authkit cookie值從POST var中注入到請求的cookie中,該var通過swfupload cookies plugin添加到請求中。這裏有一些食譜做這個,但我找不到一個爲主塔。

我把這個似乎能完成這項工作的中間件放在一起。

from webob import Request 

class AuthkitCookieFromPost(object): 
    """Injects authkit cookie value from swfupload cookies plugin""" 

    def __init__(self, app): 
     self.app = app 

    def __call__(self, environ, start_response): 
     request = Request(environ) 
     authkit_token = request.POST.get('authkit') 
     cookies = environ.get('HTTP_COOKIE') 
     if authkit_token and not cookies: 
      environ['HTTP_COOKIE'] = "authkit=" + authkit_token 
     return self.app(environ, start_response) 

您需要在您的中間件配置中包含此項,以便在Authkit之前調用它,即。在conf下面。