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
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 |