1

我正在构建一个应用程序,我想尝试使用 authkit 进行身份验证和授权。但是,我知道我将使用swfupload,并且无法依赖通过 Flash 传递的 auth cookie。过去,我从头开始推出了自己的 cookie/auth 解决方案,但这次我很想避免这样做。

如果找不到 cookie,有没有办法配置authkit.authenticate.cookie回退到 aPOST或param?或者是否有一种简单的方法可以在or方法GET之上添加此功能?form, cookieredirect, cookie

4

1 回答 1

1

我今天遇到了同样的问题。人们似乎使用的最常见的解决方案是将 Authkit cookie 值从 POST var 注入到请求的 cookie 中,后者由 swfupload cookies 插件添加到请求中。有一些食谱可以做到这一点,但我找不到 Pylons 的食谱。

我已经将这个似乎可以完成这项工作的小中间件拼凑在一起。

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。

于 2011-06-16T13:06:42.293 回答