该系统应如下所示:
auth_request指令向 Flask 应用程序发出子请求(将凭据作为请求的标头传递),期望响应为 200 或 401。
flask.session. 如果是,则立即返回 200 响应;否则,它会尝试根据外部事实来源进行身份验证。如果成功,则将该用户添加到flask.session该应用程序并返回 200 响应;否则,它将返回 401 响应。flask.session并返回 401 响应。然后,用户可以提出新的登录请求。用户的浏览器应该缓存他们提交的凭据,因此每个新请求都应该能够立即看到用户参与flask.session并避免进行新的身份验证尝试。
看似随机,在刷新或浏览受保护资源时(成功验证后),有时会出现验证弹出窗口,并要求用户再次验证。他们可以提交,并且在再次提示重新进行身份验证之前将加载单个资源。
例子:
受保护资源是一个静态网站,由一个索引页、一个 CSS 文件和三个图像组成。初始身份验证后,用户多次刷新页面。其中一次,将触发身份验证提示。他们将再次输入他们的凭据,并加载索引页面。他们将再次提示输入 CSS 文件,然后再次提示输入每个图像。
我不确定我需要在这里链接多少东西才能根除问题,所以我将从负责生成auth_request子请求和后续路由的 nginx 文件以及负责生成的两个 python 文件开始身份验证请求和处理会话。
nginx.default
server {
listen 80;
server_name _;
location / {
auth_request /auth;
proxy_pass {{resource_endpoint}}; …Run Code Online (Sandbox Code Playgroud)