关闭菜单
四少爷的blog
by Jermey
V 1.0
打开菜单

NGINX + LUA 实现身份验证​

以前所有的身份验证都是写在代码里面的.后来有一天,遇到个没有认证功能的web,需要从我们的服务器出去…..折腾了这个东西.

说是nginx + lua 其实我说谎了…..我使用的是OpenResty

没有找到 win平台nginx + lua的安装教程

下载地址:官网下载页面

下载解压后目录和nginx差不多.所以就直接上配置文件了.

server {
    listen       80;
    server_name  localhost;
    location / {
        proxy_pass   http://www.test.com/;
        proxy_redirect default;

        # 使用lua进行权限验证
        access_by_lua '
        -- 判断名为Token的Cookie是否存在
        local cookie_name = "cookie_Token"
        if ngx.var[cookie_name] == null then
            -- 如果cookie不存在返回401错误
            ngx.exit(ngx.HTTP_UNAUTHORIZED) 

            -- 也可以直接跳转到登录地址
            -- return ngx.redirect("http://登录地址")
        end
        ';
    }
}

我这里是读取cookie并判断cookie的真实性(其实只判断了cookie是否存在).

每个系统判断的方法不一样,所以没有上判断的代码.

(完)