项目初始化
This commit is contained in:
14
data/magic-api/api/认证授权/group.json
Normal file
14
data/magic-api/api/认证授权/group.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"properties" : { },
|
||||
"id" : "0f7392c3132d4ae698caf0e8ab55756b",
|
||||
"name" : "认证授权",
|
||||
"type" : "api",
|
||||
"parentId" : "0",
|
||||
"path" : "authorize",
|
||||
"createTime" : 1754119561731,
|
||||
"updateTime" : null,
|
||||
"createBy" : "admin",
|
||||
"updateBy" : null,
|
||||
"paths" : [ ],
|
||||
"options" : [ ]
|
||||
}
|
47
data/magic-api/api/认证授权/注销.ms
Normal file
47
data/magic-api/api/认证授权/注销.ms
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
"properties" : { },
|
||||
"id" : "f8d0bf079a944feaaa98f9f55efb06ee",
|
||||
"script" : null,
|
||||
"groupId" : "0f7392c3132d4ae698caf0e8ab55756b",
|
||||
"name" : "注销",
|
||||
"createTime" : 1754121435355,
|
||||
"updateTime" : 1754121748966,
|
||||
"lock" : null,
|
||||
"createBy" : "admin",
|
||||
"updateBy" : "admin",
|
||||
"path" : "logout",
|
||||
"method" : "POST",
|
||||
"parameters" : [ ],
|
||||
"options" : [ ],
|
||||
"requestBody" : "{\n \"refresh_token\": \"4f240f5143ae4b7abecf6061e0074ceb\"\n}",
|
||||
"headers" : [ {
|
||||
"name" : "access_token",
|
||||
"value" : "66c010c2039e4939aaf8377c40ed1b07",
|
||||
"description" : null,
|
||||
"required" : true,
|
||||
"dataType" : "String",
|
||||
"type" : null,
|
||||
"defaultValue" : null,
|
||||
"validateType" : null,
|
||||
"error" : null,
|
||||
"expression" : null,
|
||||
"children" : null
|
||||
} ],
|
||||
"paths" : [ ],
|
||||
"responseBody" : "{\n \"code\": \"000001\",\n \"message\": \"失败: 请求参数无效,刷新令牌不能为空\",\n \"data\": null\n}",
|
||||
"description" : null,
|
||||
"requestBodyDefinition" : null,
|
||||
"responseBodyDefinition" : null
|
||||
}
|
||||
================================
|
||||
|
||||
if (is_null(body) || is_blank(body.refresh_token)){
|
||||
return biz_failure_fmt(BizConstants.FAILURE, "请求参数无效,刷新令牌不能为空")
|
||||
}
|
||||
|
||||
var access_token = header.access_token
|
||||
var refresh_token = body.refresh_token
|
||||
redis_del("dolphin:access_token:" + access_token)
|
||||
redis_del("dolphin:refresh_token:" + refresh_token)
|
||||
|
||||
return success()
|
171
data/magic-api/api/认证授权/登录.ms
Normal file
171
data/magic-api/api/认证授权/登录.ms
Normal file
@ -0,0 +1,171 @@
|
||||
{
|
||||
"properties" : { },
|
||||
"id" : "6fcf21ad09874c2ca00dd9283f2a16cb",
|
||||
"script" : null,
|
||||
"groupId" : "0f7392c3132d4ae698caf0e8ab55756b",
|
||||
"name" : "登录",
|
||||
"createTime" : 1754119582735,
|
||||
"updateTime" : 1754121286889,
|
||||
"lock" : null,
|
||||
"createBy" : "admin",
|
||||
"updateBy" : "admin",
|
||||
"path" : "login",
|
||||
"method" : "POST",
|
||||
"parameters" : [ ],
|
||||
"options" : [ ],
|
||||
"requestBody" : "{\n \"username\": \"admin\",\n \"password\": \"123456\"\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_fmt(BizConstants.FAILURE, "请求参数无效,用户名或密码不能为空")
|
||||
}
|
||||
|
||||
// 登录
|
||||
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_fmt(BizConstants.FAILURE, "用户名或密码错误")
|
||||
}
|
||||
if (userDO.status == "PENDING") {
|
||||
return biz_failure_fmt(BizConstants.FAILURE, "用户未审核通过")
|
||||
}
|
||||
if (userDO.status == "LOCKED") {
|
||||
return biz_failure_fmt(BizConstants.FAILURE, "用户以被锁定,请稍后重试")
|
||||
}
|
||||
if (userDO.status == "BANNED") {
|
||||
return biz_failure_fmt(BizConstants.FAILURE, "用户以被禁用")
|
||||
}
|
||||
if (userDO.status == "DELETED") {
|
||||
return biz_failure_fmt(BizConstants.FAILURE, "用户不存在")
|
||||
}
|
||||
|
||||
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
|
||||
})
|
Reference in New Issue
Block a user