You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.8 KiB
Lua

local utils = require("app.libs.utils")
-- local jwt = require("app.libs.jwt.jwt")
local pwd_secret = require("app.config.config").pwd_secret
local jwt_secret = require("app.config.config").jwt_secret
local user_model = require("app.model.user")
return function (req, username, password)
if not username or not password or username == "" or password == "" then
return {
code = AUTH_ERROR.account_nil,
message = system_error_msg(AUTH_ERROR.account_nil),
}
end
local isExist = false
local userid = 0
password = utils.encode(password .. "#" .. pwd_secret)
local result, err = user_model:query(username, password)
local user = {}
if result and not err then
if result and #result == 1 then
isExist = true
user = result[1]
userid = user.id
end
else
isExist = false
end
-- 生成 token 的有效期
local now = ngx.now()
local exp = now + 1200
if isExist == true then
-- local jwt_token = jwt:sign(jwt_secret, {
-- header = { typ = "JWT", alg = "HS256" },
-- payload = { foo = "bar", id = 1, name = "mind029", exp = exp }
-- })
local token = ngx.md5(username .. password .. os.time() .. "fishadminapi")
req.session.set("user", {
username = username,
userid = userid,
create_time = user.create_time or "",
token = token
})
return {
code = SYSTEM_ERROR.success,
message = system_error_msg(SYSTEM_ERROR.success),
data = {
token = token
}
}
else
return {
code = AUTH_ERROR.account_error,
message = system_error_msg(AUTH_ERROR.account_error),
}
end
end