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中,Spring框架提供了AOP支持,可以创建自定义注解,并在特定的切点(如方法调用)上应用这些注解,实现拦截器功能。 - 项目中可能定义了一个名为`@RepeatableOperationCheck`的注解,用于标记那些需要防...
在游戏开发领域,Cocos2d-x 是一个广泛使用的开源跨平台2D游戏引擎,而 Lua 是一种轻量级的脚本语言,常被用作 Cocos2d-x 的脚本接口,即 Cocos2d-lua。在这个场景下,“cocos2d-lua 实现富文本”意味着我们要探讨...
lua实现 basse64 lua lua实现 basse64 lua lua实现 basse64 lua
1、简单工厂模式lua实现 2、工厂方法模式lua实现 3、原型模式lua实现 4、建造者模式lua实现 5、单例模式lua实现 6、抽象工厂模式lua实现 结构型模式 1、装饰模式lua实现 2、代理模式lua实现 3、外观模式lua实现 4、...
这些文件将使用之前生成的 C/C++ 代码来实现 Lua 对 Web Service 的调用。 #### 三、生成 Linux 下的动态链接库 (.so) 为了使 Lua 能够在 Linux 系统下调用封装好的 C 函数,我们需要将 C 代码编译成动态链接库 (....
Lua实现跟py的sleep一样的定时器功能,在倒计时结束时调用函数
在本文中,我们将介绍如何使用 NGINX + LUA 实现复杂的控制,包括安装 LUA 模块、使用 LUA 脚本实现访问限制、rewrite 跳转等功能。 一、安装 LUA 模块 要使用 LUA 在 NGINX 中实现复杂的控制,需要安装 LUA 模块...
在Cocos2d-x中使用Lua来实现虚拟摇杆,可以简化代码并提高开发效率。下面我们将详细探讨如何利用Lua来实现这个功能。 1. **创建UI组件**:首先,你需要创建虚拟摇杆的UI组件。这通常包括一个背景图片(通常是圆形)...
跑马灯抽奖Lua.zip是一个基于Lua语言开发的项目,用于实现一种常见的互动效果——跑马灯抽奖。在游戏开发、活动界面设计等场景中,跑马灯效果常常被用来展示滚动名单或者抽奖结果,给用户带来动态且引人注目的视觉...
本教程将详细解析如何使用Nginx、upload模块以及lua来搭建一个简单的文件上传系统。 首先,我们需要了解Nginx的ngx_http_upload_module模块,这是一个用于处理HTTP POST请求中的文件上传的第三方模块。它允许我们在...
Lua语言实现特殊字符过滤,对于使用Lua开发移动端游戏的童鞋非常常用。代码亲测有效,附使用实例
MVVM源于MVC(Model-View-Controller)模式,...MVVM本质就是基于操作数据来操作视图进而操作DOM,借助于MVVM无需直接操作DOM,开发者只需完成包含声明绑定的视图模板,编写ViewModel中有业务,使得View完全实现自动化。
在Android开发中,有时我们需要使用脚本语言来增强应用的灵活性和可扩展性,而Lua就是这样一种轻量级、高效且易于学习的脚本语言。本文将深入探讨如何在Android应用中集成Lua,并实现Android与Lua之间的交互。 一、...
在本文中,我们将深入探讨如何使用LUA脚本语言实现在STM32微控制器上进行LED闪烁控制。STM32是一种广泛应用的基于ARM Cortex-M内核的微控制器,以其高性能、低功耗和丰富的外设接口而受到青睐。LUA是一种轻量级的...
在lua-zset的实现中,可能使用了 Lua 的表(table)数据结构作为基础,通过巧妙的设计实现了类似Redis zset的特性。表在Lua中既可以作为关联数组(key-value),也可以作为序列(array-like),这种灵活性为实现排序...
这通常通过计算对象间的距离或使用碰撞检测算法来实现,Lua的灵活性使得这类复杂逻辑易于实现。 3. AI设计:敌机的行动逻辑是游戏趣味性的体现,Lua可以编写简单的AI算法,让敌机有策略地移动和攻击。 四、图形与...
本文将深入探讨如何使用Lua来实现对两个文件中表的比较,找出它们之间的差异。 首先,我们需要理解Lua中的表。表是Lua的核心数据结构,它是一个动态大小的关联数组,可以存储任意类型的值,包括数字、字符串、其他...
汉诺塔是一种经典的题目,用很多种语言均可实现。 本例子是用lua实现汉诺塔
《Lua实现PureMVC》 PureMVC是一个轻量级的框架,主要用于构建多层应用程序。这个框架的设计理念是基于模型-视图-控制器(Model-View-Controller,MVC)模式,它提供了一种组织代码的方式,使得代码更易于理解和...