快速提问:我使用 CherryPy 创建了一个网络服务器。它需要对所有页面进行身份验证,因此我的默认处理程序返回登录页面对象。由于 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,但我还没有找到让它们解决这个问题的方法。
有什么想法吗?
谢谢!
最佳答案
您可以使用重定向指定登录页面:raise cherrypy.HTTPRedirect("/auth/login")
但是,请看这里,这里有一个如何编写身份验证例程的示例:
http://tools.cherrypy.org/wiki/AuthenticationAndAccessRestrictions
还有一个示例,说明如何在登录后将用户重定向回请求的页面。
关于python - CherryPy 重定向到 root,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12030195/