CherryPy重定向到root

Mup*_*pet 7 python redirect cherrypy

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

localhost:80/a/b/c
Run Code Online (Sandbox Code Playgroud)

将被重定向到:

localhost:80/a/b/login
Run Code Online (Sandbox Code Playgroud)

但是,我希望从根级别调用所有未经身份验证的请求,与HTML请求中添加的潜在附加参数无关,eG:

localhost:80/a/b/c --> localhost:80/login
Run Code Online (Sandbox Code Playgroud)

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

'<meta http-equiv="REFRESH" content="0;url=/login">'
Run Code Online (Sandbox Code Playgroud)

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

有什么想法吗?

谢谢!

dce*_*chi 21

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

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

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

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