7

快速提问:我使用 CherryPy 创建了一个 Web 服务器。它需要对所有页面进行身份验证,因此我的默认处理程序返回登录页面对象。由于 CherryPy 处理调度的方式,有人要求:

localhost:80/a/b/c

将被重定向到:

localhost:80/a/b/login

但是,我希望从根级别调用所有未经身份验证的请求,独立于 HTML 请求中添加的潜在附加参数,例如:

localhost:80/a/b/c --> localhost:80/login

目前我正在通过返回一个基于 HTML 的重定向来解决这个问题:

'<meta http-equiv="REFRESH" content="0;url=/login">'

我觉得这是一个非常不干净的解决方案,宁愿使用基于 CherryPy 的解决方案。我查看了cherrypy.HTTPRedirect 和cherrypy.url,但我还没有找到让它们解决这个问题的方法。

有什么想法吗?

谢谢!

4

1 回答 1

21

您可以使用重定向指定登录页面:raise cherrypy.HTTPRedirect("/auth/login")

但是,看看这里,有一个如何编写身份验证例程的示例:

http://tools.cherrypy.org/wiki/AuthenticationAndAccessRestrictions

还有一个示例说明如何在登录后将用户重定向回请求的页面。

于 2012-08-19T23:08:34.260 回答