如何在nginx中处理来自www-authenticate的响应?
2017-8-2 5:44:13
收藏:0
阅读:95
评论:2
我正在使用openresty nginx v1.11.2.4。我希望能够在用户访问资源或在他们尝试在服务器上放置某些内容之前对他们进行身份验证。我正在使用http_auth_request_module,以下是我的nginx.conf文件的摘录:
location /video/ {
auth_request /auth;
root /usr/local/openresty/nginx/html;
}
location = /auth {
more_set_headers "WWW-Authenticate: Basic";
return 401;
}
这会导致浏览器要求用户凭据,但现在我该如何获取/处理来自客户端的用户凭据?
点赞
用户4542614
根据这个问题的答案:使用 auth_request 模块在 Nginx 中进行身份验证,我可以通过访问 nginx.conf 文件中的 $http_authorization 变量来处理用户名和密码。以下是来自我的 nginx.conf 的一部分:
location /video {
satisfy any;
auth_basic "Private Property";
auth_basic_user_file /usr/local/openresty/nginx/conf/htpasswd;
auth_request /auth;
root /usr/local/openresty/nginx/html;
client_max_body_size 1000M;
if ($request_method != "GET"){
content_by_lua_file /root/Documents/contentbylua.lua;
}
}
location = /auth {
set $authHeader $http_authorization;
set $authUName $remote_user;
content_by_lua_file /root/Documents/restrict.lua;
}
以上的配置允许我验证一个存储在 restrict.lua 文件中 redisDB 中的用户凭据,并将 200 或 401 状态码返回到 /location 块。
在 restrict.lua 文件中,通过 ngx.var.authHeader 访问响应(用户名和密码)。进行一些字符串处理以删除“Basic”,然后对其余部分进行 base64 解码,最后对其进行一些字符串处理以获取密码。就是这样。
2017-08-08 07:52:26
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

说明: ngx_http_auth_request_module 实现了基于子请求结果的客户端授权。
如果要使用基本身份认证,不需要使用 ngx_http_auth_request_module。请使用 http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html。