首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pylons和AuthKit OpenID问题

Pylons和AuthKit OpenID问题
EN

Stack Overflow用户
提问于 2010-01-20 00:40:27
回答 1查看 628关注 0票数 3

我在设置对openID身份验证的支持时遇到了问题,使用authkit和pylons。我按照cookbook中的描述设置了所有内容,但仍然收到以下错误:

代码语言:javascript
复制
  File "/usr/lib/python2.6/dist-packages/authkit/authenticate/open_id.py", line 480, in __call__
    return self.app(environ, start_response)
  File "/usr/lib/python2.6/dist-packages/authkit/authenticate/open_id.py", line 218, in __call__
    self.session_middleware
AuthKitConfigError: The session middleware 'beaker.session' is not present. Have you set up the session middleware?

(完整的回溯信息很少,只有一系列中间件调用)

我的配置如下:

代码语言:javascript
复制
authkit.setup.method = openid, cookie
# TODO authkit.openid.template.file =
authkit.cookie.params.httponly = true


authkit.openid.store.type = file
authkit.openid.store.config = %(here)s/data
authkit.openid.session.middleware = beaker.session
authkit.openid.session.key = authkit_openid
authkit.openid.baseurl = http://mysite.moc
authkit.openid.path.signedin = /main/cabinet
authkit.openid.authenticate.user.encrypt = authkit.users:md5                                                                          

烧杯中间件肯定是加载的,这是我的make_app函数(是的,pylons版本检查是真的):

代码语言:javascript
复制
|       # Configure the Pylons environment
|       load_environment(global_conf, app_conf)
|   
|       # The Pylons WSGI app
|       app = PylonsApp()
|       app = UserMiddleware(app)
|   
|       if pylons.__version__ >= "0.9.7":
|-          from beaker.middleware import SessionMiddleware
||          from routes.middleware import RoutesMiddleware
||          app = RoutesMiddleware(app, config['routes.map'])
||          app = SessionMiddleware(app, app_conf)
|   
|   
|       if asbool(full_stack):                                                                                                                               
|           # Handle Python exceptions
|   
|-          app = authkit.authenticate.middleware(app, app_conf)
||          # Display error documents for 401, 403, 404 status codes (and
||          # 500 when debug is disabled)
||          if pylons.__version__ >= "0.9.7":
||-             app = ErrorHandler(app, global_conf,
23-                            **config['pylons.errorware'])
|||             from pylons.middleware import StatusCodeRedirect
|||             if asbool(config['debug']):
23-                 app = StatusCodeRedirect(app)
|||             else:
23-                 app = StatusCodeRedirect(app, [401, 403, 404, 500])
||          else:
||-             app = ErrorHandler(app, global_conf, error_template = error_template,
23-                            **config['pylons.errorware'])
|||             app = ErrorDocuments(app, global_conf, mapper=error_mapper, **app_conf)
|   
|       # Establish the Registry for this application
|       app = RegistryManager(app)
|   
|       # Static files
|       javascripts_app = StaticJavascripts()
|       static_app = StaticURLParser(config['pylons.paths']['static_files'])
|       app = Cascade([static_app, javascripts_app, app])
|       return app

有人知道这是怎么回事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-31 13:30:03

在您的middleware.py中使用这一行:

代码语言:javascript
复制
app = authkit.authenticate.middleware(app, app_conf)

并将其移动到这条线的正下方:

代码语言:javascript
复制
app = PylonsApp()
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2095120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档