gpt4 book ai didi

缓存 auth_request 中的 token

转载 作者:行者123 更新时间:2023-12-02 17:51:34 26 4
gpt4 key购买 nike

我想缓存请求 header 字段授权中的 token 。

授权:持有者 abcdefghijklmnopqrstuvwxyz

我的目标是,我不必验证验证服务器上的每个请求。如果授权 token 已缓存(且有效),则请求应调用 API 而无需验证。

location /main {
auth_request /auth;
proxy_ignore_headers Cache-Control;
proxy_pass http://API;
proxy_http_version 1.1;

}


location /auth {
internal;
proxy_cache my_cache;
proxy_ignore_headers Cache-Control;
proxy_cache_key "$http_authorization";
proxy_pass https://validationserver;
proxy_pass_request_body off;
proxy_set_header Content-Length "";

}

这是我的设置,但这不起作用。

希望你能帮助我。

您好!

最佳答案

您想要完成哪种身份验证?它是一种站点范围的身份验证机制,其中每个经过身份验证的用户都对内容具有相同的权限吗?或者更微妙的是,给定用户可能有权也可能无权访问某些资源?

因为如果是后者,那么您实际上就让您的应用程序面临安全漏洞 - 任何经过身份验证的用户都将能够使用其身份验证 token 来执行他们可能有权或可能无权执行的操作,因为,大概,如果在经过验证和缓存的原始授权请求中出现正确的用户名/ID 时首先缓存 token ,则作为查询中的参数传递的任何用户名或 ID 都将受到完全信任。

<小时/>

或者,请注意,在 nginx 1.7.3 之前,不支持缓存,如 http://nginx.org/r/auth_request 所示。 .

<小时/>

另请注意,默认情况下,请求或响应中存在 cookie 同样会阻止使用 http://nginx.org/r/proxy_cache 缓存内容。 。根据http://serverfault.com/questions/462799/leverage-proxy-caching-with-nginx-by-removing-set-cookie-header/467774#467774 ,因此可能需要以下内容才能使缓存发挥作用:

    proxy_hide_header       Set-Cookie;
proxy_ignore_headers Set-Cookie;
# important! Remember the special inheritance rules for proxy_set_header:
# http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_set_header
proxy_set_header Cookie "";

关于缓存 auth_request 中的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43324971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com