165 lines
4.3 KiB
Plaintext
165 lines
4.3 KiB
Plaintext
{
|
|
"properties" : { },
|
|
"id" : "6fcf21ad09874c2ca00dd9283f2a16cb",
|
|
"script" : null,
|
|
"groupId" : "0f7392c3132d4ae698caf0e8ab55756b",
|
|
"name" : "登录",
|
|
"createTime" : 1754119582735,
|
|
"updateTime" : 1754193379477,
|
|
"lock" : null,
|
|
"createBy" : "admin",
|
|
"updateBy" : "admin",
|
|
"path" : "login",
|
|
"method" : "POST",
|
|
"parameters" : [ ],
|
|
"options" : [ ],
|
|
"requestBody" : "{\n \"username\": \"admin\",\n \"password\": \"1234567\"\n}",
|
|
"headers" : [ ],
|
|
"paths" : [ ],
|
|
"responseBody" : "{\n \"code\": \"000000\",\n \"message\": \"成功\",\n \"data\": {\n \"access_token\": \"7a01c52f44d54dd6a6517ba36cba122f\",\n \"refresh_token\": \"d8c639f0288a4cdfa96ac56378bdcc23\"\n }\n}",
|
|
"description" : null,
|
|
"requestBodyDefinition" : {
|
|
"name" : "",
|
|
"value" : "",
|
|
"description" : "",
|
|
"required" : false,
|
|
"dataType" : "Object",
|
|
"type" : null,
|
|
"defaultValue" : null,
|
|
"validateType" : "",
|
|
"error" : "",
|
|
"expression" : "",
|
|
"children" : [ {
|
|
"name" : "username",
|
|
"value" : "admin",
|
|
"description" : "",
|
|
"required" : false,
|
|
"dataType" : "String",
|
|
"type" : null,
|
|
"defaultValue" : null,
|
|
"validateType" : "",
|
|
"error" : "",
|
|
"expression" : "",
|
|
"children" : [ ]
|
|
}, {
|
|
"name" : "password",
|
|
"value" : "123456",
|
|
"description" : "",
|
|
"required" : false,
|
|
"dataType" : "String",
|
|
"type" : null,
|
|
"defaultValue" : null,
|
|
"validateType" : "",
|
|
"error" : "",
|
|
"expression" : "",
|
|
"children" : [ ]
|
|
} ]
|
|
},
|
|
"responseBodyDefinition" : {
|
|
"name" : "",
|
|
"value" : "",
|
|
"description" : "",
|
|
"required" : false,
|
|
"dataType" : "Object",
|
|
"type" : null,
|
|
"defaultValue" : null,
|
|
"validateType" : "",
|
|
"error" : "",
|
|
"expression" : "",
|
|
"children" : [ {
|
|
"name" : "code",
|
|
"value" : "000000",
|
|
"description" : "",
|
|
"required" : false,
|
|
"dataType" : "String",
|
|
"type" : null,
|
|
"defaultValue" : null,
|
|
"validateType" : "",
|
|
"error" : "",
|
|
"expression" : "",
|
|
"children" : [ ]
|
|
}, {
|
|
"name" : "message",
|
|
"value" : "成功",
|
|
"description" : "",
|
|
"required" : false,
|
|
"dataType" : "String",
|
|
"type" : null,
|
|
"defaultValue" : null,
|
|
"validateType" : "",
|
|
"error" : "",
|
|
"expression" : "",
|
|
"children" : [ ]
|
|
}, {
|
|
"name" : "data",
|
|
"value" : "",
|
|
"description" : "",
|
|
"required" : false,
|
|
"dataType" : "Object",
|
|
"type" : null,
|
|
"defaultValue" : null,
|
|
"validateType" : "",
|
|
"error" : "",
|
|
"expression" : "",
|
|
"children" : [ {
|
|
"name" : "access_token",
|
|
"value" : "1234e6e666184d479eb08e29d23bfa8e",
|
|
"description" : "",
|
|
"required" : false,
|
|
"dataType" : "String",
|
|
"type" : null,
|
|
"defaultValue" : null,
|
|
"validateType" : "",
|
|
"error" : "",
|
|
"expression" : "",
|
|
"children" : [ ]
|
|
}, {
|
|
"name" : "refresh_token",
|
|
"value" : "ddedf3a00fcf4a3ba7e88712ec446b45",
|
|
"description" : "",
|
|
"required" : false,
|
|
"dataType" : "String",
|
|
"type" : null,
|
|
"defaultValue" : null,
|
|
"validateType" : "",
|
|
"error" : "",
|
|
"expression" : "",
|
|
"children" : [ ]
|
|
} ]
|
|
} ]
|
|
}
|
|
}
|
|
================================
|
|
// 参数校验
|
|
if (is_null(body) || is_blank(body.username) || is_blank(body.password)){
|
|
return biz_failure(BizConstants.AUTH_0301)
|
|
}
|
|
|
|
// 登录
|
|
var userDO = db.select("""
|
|
SELECT * FROM sys_org_user WHERE username = #{body.username}
|
|
""")
|
|
if (userDO == null || !bcrypt_match(body.password, userDO.password)){
|
|
return biz_failure(BizConstants.AUTH_0302)
|
|
}
|
|
if (userDO.status == "LOCKED") {
|
|
return biz_failure(BizConstants.AUTH_0303)
|
|
}
|
|
if (userDO.status == "BANNED") {
|
|
return biz_failure(BizConstants.AUTH_0304)
|
|
}
|
|
|
|
var access_token = uuid()
|
|
redis_setex("dolphin:access_token:" + access_token, {
|
|
id: userDO.id,
|
|
username: userDO.username
|
|
}, 1000 * 60 * 30)
|
|
var refresh_token = uuid()
|
|
redis_setex("dolphin:refresh_token:" + refresh_token, {
|
|
access_token: access_token
|
|
}, 1000 * 60 * 60 * 24 * 7)
|
|
|
|
return success({
|
|
access_token: access_token,
|
|
refresh_token: refresh_token
|
|
}) |