AuthPlatform/src/service/auth/auth.lua

158 lines
4.6 KiB
Lua
Raw Normal View History

---
--- Generated by EmmyLua(https://github.com/EmmyLua)
--- Created by admin.
--- DateTime: 2025/10/28 11:09
---
local resp = require("util.response")
local authDao = require("dao.auth")
local validator = require("validator.auth.auth")
local cjson = require("cjson.safe")
local token = require("util.token")
local _M = {}
--用户登录业务逻辑处理
function _M.login()
--获取远端客户端的IP地址
local client_ip = ngx.var.remote_addr
ngx.log(ngx.INFO, "client_ip:"..client_ip.." login system")
--读取请求体的数据
ngx.req.read_body()
--获取请求数据
local body_data = ngx.req.get_body_data()
-- 验证数据是否符合json
local retJson = validator.validatorJson(body_data)
--验证失败则返回
if not retJson then
local result = resp:json(0x000001)
resp:send(result)
return
end
--ngx.say(body_data)
local code, ret = authDao.login(cjson.decode(body_data))
--读取数据错误
if code ~= 0 or table.getn(ret) < 0 then
local result = resp:json(0x000001)
resp:send(result)
return
end
local id = ""
local username = ""
for _, row in ipairs(ret) do
id = row.id
username = row.username
end
--获取的登陆的用户信息返回tocken
local jwt_token = token.generateToken(id, username)
local data = {}
data["token"] = jwt_token
data["userInfo"] = ret
local result = resp:json(code, data)
resp:send(result)
end
--用户注册业务逻辑处理
function _M.signup()
--读取请求体的数据
ngx.req.read_body()
--获取请求数据
local body_data = ngx.req.get_body_data()
-- 验证数据是否符合json
local retJson = validator.validatorJson(body_data)
--验证失败则返回
if not retJson then
local result = resp:json(0x000001)
resp:send(result)
return
end
--ngx.say(body_data)
local code, ret = authDao.signup(cjson.decode(body_data))
--读取数据错误
if code ~= 0 or table.getn(ret) < 0 then
local result = resp:json(0x000001)
resp:send(result)
return
end
--返回注册成功信息
local result = resp:json(code, ret)
resp:send(result)
end
--用户登出业务逻辑处理
function _M.logout()
--获取请求头中的令牌数据
local auth_header = ngx.var.http_Authorization
--验证数据的正确性
local ret = token.authorizationToken(auth_header)
--验证失败则返回
local code = ret["code"]
if code ~= 200 then
local result = resp:json(code, ret["message"])
resp:send(result)
return
end
--验证成功记录登出的日志信息
local userid = ret["body"]["payload"]["userid"]
local username = ret["body"]["payload"]["username"]
ngx.log(ngx.INFO, "userid:"..userid.." username:"..username.." logout system")
local result = resp:json(0, "用户退出系统成功")
resp:send(result)
end
--根据token获取用户信息
function _M.user()
--获取请求头中的令牌数据
local auth_header = ngx.var.http_Authorization
--验证数据的正确性
local retToken = token.authorizationToken(auth_header)
--验证失败则返回
local code = retToken["code"]
if code ~= 200 then
local result = resp:json(code, retToken["message"])
resp:send(result)
return
end
--验证成功获取用户id信息
local userid = retToken["body"]["payload"]["userid"]
local code, ret = authDao.getUser(userid)
--读取数据错误
if code ~= 0 or table.getn(ret) < 0 then
local result = resp:json(0x000001)
resp:send(result)
return
end
--获取的登陆的用户信息
local result = resp:json(code, ret)
resp:send(result)
end
--根据token获取用户登录权限
function _M.permission()
--获取请求头中的令牌数据
local auth_header = ngx.var.http_Authorization
--验证数据的正确性
local retToken = token.authorizationToken(auth_header)
--验证失败则返回
local code = retToken["code"]
if code ~= 200 then
local result = resp:json(code, retToken["message"])
resp:send(result)
return
end
--验证成功获取用户id信息
local userid = retToken["body"]["payload"]["userid"]
--通过用户id查询到用户的权限信息
local code, ret = authDao.getUser(userid)
--读取数据错误
if code ~= 0 or table.getn(ret) < 0 then
local result = resp:json(0x000001)
resp:send(result)
return
end
--返回用户权限信息
local result = resp:json(code, ret)
resp:send(result)
end
return _M