我的金字塔應用程序處理了一些URL。當非授權用戶試圖打開任何URL,然後將用戶重定向到登錄窗體:金字塔中的不同登錄視圖
def forbidden(request):
if request.user.keyname == 'guest':
return HTTPFound(location=request.route_url('auth.login',))
request.response.status = 403
return dict(subtitle=u"Access denied")
config.add_view(forbidden, context=HTTPForbidden, renderer='auth/forbidden.mako')
但對於某些URL(路由)我要回到沒有登錄表單,但WWW-Authenticate
頭一個401 Unauthorized status code
。我如何設置我的路線來完成這個?我猜我必須使用route_predicate
。
爲什麼你不能簡單地返回HTTPUnauthorized,如[這裏](http://docs.pylonsproject.org/projects/pyramid//en/latest/narr/views.html#http-exceptions)所述的幾個視圖那需要這個邏輯? –