`

用lua实现登陆超时拦截

lua 
阅读更多
local ngx = require("ngx")
local resty_redis = require("resty.redis")
local resty_cookie = require("resty.cookie")
local cjson = require("cjson")

local notFilterUrlMap={
['/mimosaui/login.html'] ="login"--not check url
}

local redis=resty_redis:new()
redis:set_timeout(1000)
ok,err = redis:connect("192.168.23.21","6379")
if not ok then
ngx.log(ngx.ERR,"failed to connect to redis:",err)
end
-- auth
ok, err = redis:get_reused_times()
if 0 == ok then
    local ok, err = redis:auth("goooUO4056")
    if not ok then
        ngx.say("failed to authenticate: ", err)
        return
    end
elseif err then
    ngx.say("failed to get_reused_times: ", err)
end

local login_url='/mimosaui/redirect.html';
local uid='';
local function getuid()
local cookie=resty_cookie:new()
uid=cookie:get("SESSION")
if not uid then
return nil
end
ngx.log(ngx.ERR,"uid is =====",uid)
local res,err=redis:exists("spring:session:sessions:expires:"..uid)
ngx.log(ngx.ERR,"hget==",res)
if res  == 0  then
ngx.log(ngx.ERR,"uid is missing,return nil")
      return nil;
else
return uid
end
return nil
end

local _url=ngx.var.uri
ngx.log(ngx.ERR,"url=:",_url)
_url=notFilterUrlMap[_url]
if not _url then
  uid= getuid();
end

        redis:set_keepalive(10000,100)
ngx.log(ngx.ERR,tostring(uid))

      if uid == nil then
      ngx.log(ngx.ERR,"uid is missing,redirect",login_url)
      --ngx.location.capture("/operate/admin/info") 
      -- ngx.req.set_uri(login_url,true)
       ngx.redirect(login_url)
-- local result = {errorCode=10002,errorMessage=""}

-- ngx.header.content_type="application/json"
-- ngx.say(cjson.encode(result))
      end



分享到:
评论

相关推荐

    java+redis+lua实现重复提交操作拦截.zip

    - 在Java中,Spring框架提供了AOP支持,可以创建自定义注解,并在特定的切点(如方法调用)上应用这些注解,实现拦截器功能。 - 项目中可能定义了一个名为`@RepeatableOperationCheck`的注解,用于标记那些需要防...

    cocos2d-lua 实现富文本

    在游戏开发领域,Cocos2d-x 是一个广泛使用的开源跨平台2D游戏引擎,而 Lua 是一种轻量级的脚本语言,常被用作 Cocos2d-x 的脚本接口,即 Cocos2d-lua。在这个场景下,“cocos2d-lua 实现富文本”意味着我们要探讨...

    lua实现basse64

    lua实现 basse64 lua lua实现 basse64 lua lua实现 basse64 lua

    lua设计模式总结

    1、简单工厂模式lua实现 2、工厂方法模式lua实现 3、原型模式lua实现 4、建造者模式lua实现 5、单例模式lua实现 6、抽象工厂模式lua实现 结构型模式 1、装饰模式lua实现 2、代理模式lua实现 3、外观模式lua实现 4、...

    lua实现调用webservice

    这些文件将使用之前生成的 C/C++ 代码来实现 Lua 对 Web Service 的调用。 #### 三、生成 Linux 下的动态链接库 (.so) 为了使 Lua 能够在 Linux 系统下调用封装好的 C 函数,我们需要将 C 代码编译成动态链接库 (....

    Lua实现跟py的sleep一样的定时器功能,在倒计时结束时调用函数

    Lua实现跟py的sleep一样的定时器功能,在倒计时结束时调用函数

    NGINX + LUA实现复杂的控制

    在本文中,我们将介绍如何使用 NGINX + LUA 实现复杂的控制,包括安装 LUA 模块、使用 LUA 脚本实现访问限制、rewrite 跳转等功能。 一、安装 LUA 模块 要使用 LUA 在 NGINX 中实现复杂的控制,需要安装 LUA 模块...

    cocos2dx 虚拟摇杆 lua实现

    在Cocos2d-x中使用Lua来实现虚拟摇杆,可以简化代码并提高开发效率。下面我们将详细探讨如何利用Lua来实现这个功能。 1. **创建UI组件**:首先,你需要创建虚拟摇杆的UI组件。这通常包括一个背景图片(通常是圆形)...

    跑马灯抽奖Lua.zip

    跑马灯抽奖Lua.zip是一个基于Lua语言开发的项目,用于实现一种常见的互动效果——跑马灯抽奖。在游戏开发、活动界面设计等场景中,跑马灯效果常常被用来展示滚动名单或者抽奖结果,给用户带来动态且引人注目的视觉...

    Nginx+upload+lua实现简单文件上传服务

    本教程将详细解析如何使用Nginx、upload模块以及lua来搭建一个简单的文件上传系统。 首先,我们需要了解Nginx的ngx_http_upload_module模块,这是一个用于处理HTTP POST请求中的文件上传的第三方模块。它允许我们在...

    Lua实现特殊字符过滤.lua

    Lua语言实现特殊字符过滤,对于使用Lua开发移动端游戏的童鞋非常常用。代码亲测有效,附使用实例

    lua实现cocos2d-x的mvvm框架

    MVVM源于MVC(Model-View-Controller)模式,...MVVM本质就是基于操作数据来操作视图进而操作DOM,借助于MVVM无需直接操作DOM,开发者只需完成包含声明绑定的视图模板,编写ViewModel中有业务,使得View完全实现自动化。

    lua与Android交互,基本实现

    在Android开发中,有时我们需要使用脚本语言来增强应用的灵活性和可扩展性,而Lua就是这样一种轻量级、高效且易于学习的脚本语言。本文将深入探讨如何在Android应用中集成Lua,并实现Android与Lua之间的交互。 一、...

    LUA实现led闪烁.rar_JW4_lua_lua 点亮led_stm32 lua_stm32_lua

    在本文中,我们将深入探讨如何使用LUA脚本语言实现在STM32微控制器上进行LED闪烁控制。STM32是一种广泛应用的基于ARM Cortex-M内核的微控制器,以其高性能、低功耗和丰富的外设接口而受到青睐。LUA是一种轻量级的...

    lua-zset, redis排序集相同的lua数据结构.zip

    在lua-zset的实现中,可能使用了 Lua 的表(table)数据结构作为基础,通过巧妙的设计实现了类似Redis zset的特性。表在Lua中既可以作为关联数组(key-value),也可以作为序列(array-like),这种灵活性为实现排序...

    Lua飞机大战源码

    这通常通过计算对象间的距离或使用碰撞检测算法来实现,Lua的灵活性使得这类复杂逻辑易于实现。 3. AI设计:敌机的行动逻辑是游戏趣味性的体现,Lua可以编写简单的AI算法,让敌机有策略地移动和攻击。 四、图形与...

    lua程序实现对两个文件的表的比较

    本文将深入探讨如何使用Lua来实现对两个文件中表的比较,找出它们之间的差异。 首先,我们需要理解Lua中的表。表是Lua的核心数据结构,它是一个动态大小的关联数组,可以存储任意类型的值,包括数字、字符串、其他...

    lua实现汉诺塔

    汉诺塔是一种经典的题目,用很多种语言均可实现。 本例子是用lua实现汉诺塔

    Lua实现PureMVC

    《Lua实现PureMVC》 PureMVC是一个轻量级的框架,主要用于构建多层应用程序。这个框架的设计理念是基于模型-视图-控制器(Model-View-Controller,MVC)模式,它提供了一种组织代码的方式,使得代码更易于理解和...

Global site tag (gtag.js) - Google Analytics