目录

January 8, 2023 · View on GitHub

English

目录

Protocol

  • Wolf接口采用Restful+JSON方式通讯.
  • POST,PUT,DELETE 请求都使用 Request Body 传递参数, 格式都为Json.
  • 请求及响应的 Content-Type 都为 application/json
  • 响应体包含一个统一结构, 后面文档中, 不再列出整个结构, 只列出 reasondata 部分.

响应体通用结构示例:

{"ok": true, "reason": "错误代码", "errmsg": "错误信息", data: {成功时, 返回的数据}}

响应通用字段说明

字段类型必填项说明
okboolean服务状态
reasonstringok=false 时, reason 为错误码.
errmsgstringok=false 时, errmsg 为错误信息提示.
dataobjectok=true 时, data 为返回的信息.

系统包含以下通用错误码(reason):

  • ERR_ARGS_ERROR 请求参数错误, 响应码为400
  • ERR_TOKEN_INVALID TOKEN非法或缺失, 响应码为401
  • ERR_ACCESS_DENIED 没有权限执行操作, 响应码为401
  • ERR_DUPLICATE_KEY_ERROR 添加更新数据时重复了, 响应码为400
  • ERR_SERVER_ERROR 服务器错误, 响应码为500

Models

UserModels

UserInfo

字段类型必填项说明
idinteger用户ID
usernamestring用户名
nicknamestring用户昵称
emailstring用户email
appIDsstring[]用户关联的appID列表
managerstring管理角色, super: 超级管理员, admin: 普通管理员
createTimeinteger创建时间

SimpleUserInfo

字段类型必填项说明
idinteger用户ID
usernamestring用户名
nicknamestring用户昵称

ApplicationModels

SimpleApplication

字段类型必填项说明
idstring应用ID
namestring应用名称
descriptionstring应用描述
createTimeinteger应用创建时间

Application

字段类型必填项说明
idstring应用ID
namestring应用名称
descriptionstring应用描述
secretstring应用的secret, OAuth2登录时使用
redirectUrisstring[]OAuth2登录跳转地址.
accessTokenLifetimeintegerOAuth2的AccessToken存活时间, 单位是秒.
refreshTokenLifetimeintegerOAuth2的RefreshToken存活时间, 单位是秒.
createTimeinteger应用创建时间
updateTimeinteger应用修改时间

RoleModels

Role

字段类型必填项说明
idstring角色ID
appIDstring应用ID
namestring角色名称
descriptionstring角色描述
permIDsstring[]角色拥有的权限列表
createTimeinteger创建时间

PermissionModels

Permission

字段类型必填项说明
idstring权限ID
appIDstring应用ID
namestring权限名称
descriptionstring权限描述
categoryIDinteger权限的分类ID
createTimeinteger创建时间

CategoryModels

Category

字段类型必填项说明
idstring分类ID
appIDstring应用ID
namestring分类名称
createTimeinteger创建时间

ResourceModels

Resource

字段类型必填项说明
idstring资源ID
appIDstring应用ID
matchTypestring资源匹配类型, equal: 完全匹配, suffix: 后缀匹配, prefix: 前缀匹配.
namestring资源名称, 当matchType为equal时, name为URL, 当matchType为suffix时, name为后缀值, 当matchType为prefix时, name为URL的前缀.
actionstring资源的动作/操作, 通常是HTTP请求方法. 有以下可选值: ALL, GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH. 其中ALL表示可匹配所有HTTP方法.
priorityinteger资源优先级.
permIDstring访问该资源需要的权限
createTimeinteger创建时间

AccessLogModels

AccessLog

字段类型必填项说明
idinteger日志ID
appIDstring应用ID
userIDstring操作用户ID
usernamestring操作用户名
nicknamestring操作用户昵称
actionstring执行的操作(HTTP请求方法)
resNamestring访问的URL
statusinteger访问状态码
datestring访问日期, 格式为 yyyy-mm-dd
accessTimeinteger访问时间, unix时间戳
ipstring访问者的IP

Login

Console 登录接口, 只有 superadmin 的用户可登录.

管理后台大部分接口都需要使用Token进行操作, Token在使用管理员账号登录后获取. 需要Token的接口, token可通过请求头 x-rbac-token 来传递.

token过期时间默认为30天. 可通过环境变量 CONSOLE_TOKEN_EXPIRE_TIME 来修改, 单位是秒. 修改之后, 需要重启Wolf-Server

请求方法: POST

请求URL: /wolf/user/login

Request Body参数

字段类型必填项说明
usernamestring用户名
passwordstring密码
authTypeinteger认证类型, 1: 密码, 2: LDAP

Response Body 响应

  • data:
字段类型必填项说明
tokenstring用户登录token
userInfoUserInfo登录用户信息
applicationsSimpleApplication[]用户的应用列表.
  • reason:
    • ERR_USER_NOT_FOUND 用户不存在
    • ERR_PASSWORD_ERROR 密码错误
    • ERR_USER_DISABLED 用户被禁用
    • ERR_ACCESS_DENIED 非管理员用户不能登录.
    • ERR_LDAP_CONFIG_NOT_FOUND 在LDAP登录时,服务器未配置LDAP.

示例

  • 请求
curl http://127.0.0.1:12180/wolf/user/login \
-H "Content-Type: application/json" \
-d '{ "username": "root", "password": "password"}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "token": "WOLF-TOKEN-ENCODE-BY-JWT",
    "userInfo": {
      "id": 1,
      "username": "root",
      "nickname": "root(super man)",
      "email": null,
      "appIDs": [
        "openresty"
      ],
      "manager": "super",
      "createTime": 1580486400
    },
    "applications": [
      {
        "id": "restful",
        "name": "restful测试",
        "description": "restful",
        "createTime": 1580486400
      }
    ]
  }
}

为方便执行后面的示例, 可将上面的 token 保存为shell环境下的一个变量:

export WOLF_TOKEN="WOLF-TOKEN-ENCODE-BY-JWT"

API-Application

添加应用

添加一个新的应用

请求方法: POST

请求URL: /wolf/application

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
idstring应用ID, 必须唯一
namestring应用名称, 必须唯一
descriptionstring应用说明
secretstring应用的secret, OAuth2登录时使用
redirectUrisstring[]OAuth2登录回调.
accessTokenLifetimeintegerOAuth2的AccessToken存活时间, 单位是秒, 如果为0, 使用系统默认设置: 7天.
refreshTokenLifetimeintegerOAuth2的RefreshToken存活时间, 单位是秒, 如果为0, 使用系统默认设置: 30天.

Response Body 响应

  • data:
字段类型必填项说明
applicationApplication新添加的应用信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/application \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-d '{
    "id": "test-app", "name": "application for test", "description": "description of application",
    "secret": "d41d8cd98f00b204e9800998ecf8427e",
    "redirectUris": ["http://127.0.0.1:12180/callback"],
    "accessTokenLifetime": 604801,
    "refreshTokenLifetime": 2592001
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "application": {
      "id": "test-app",
      "name": "application for test",
      "description": "description of application",
      "redirectUris": [
        "http://127.0.0.1:12180/callback"
      ],
      "grants": null,
      "accessTokenLifetime": 604801,
      "refreshTokenLifetime": 2592001,
      "createTime": 1580486400,
      "updateTime": 1580486400
    }
  }
}

修改应用

修改应用信息

请求方法: PUT

请求URL: /wolf/application

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
idstring应用ID, 必须唯一, 应用ID不能修改.
namestring应用名称, 必须唯一
descriptionstring应用说明
secretstring应用的secret, OAuth2登录时使用
redirectUrisstring[]OAuth2登录回调.
accessTokenLifetimeintegerOAuth2的AccessToken存活时间, 单位是秒, 如果为0, 使用系统默认设置: 7天.
refreshTokenLifetimeintegerOAuth2的RefreshToken存活时间, 单位是秒, 如果为0, 使用系统默认设置: 30天.

Response Body 响应

  • data:
字段类型必填项说明
applicationApplication修改后的应用信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/application \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X PUT \
-d '{
    "id": "test-app", "name": "test-application", "description": "description of application",
    "secret": "d41d8cd98f00b204e9800998ecf8427e",
    "redirectUris": ["http://127.0.0.1:12180/callback2"],
    "accessTokenLifetime": 604802,
    "refreshTokenLifetime": 2592002
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "application": {
      "id": "test-app",
      "name": "test-application",
      "description": "description of application",
      "redirectUris": [
        "http://127.0.0.1:12180/callback2"
      ],
      "grants": null,
      "accessTokenLifetime": 604802,
      "refreshTokenLifetime": 2592002,
      "createTime": 1580486400,
      "updateTime": 1580486401
    }
  }
}

查询单个应用

查询一个应用信息

请求方法: GET

请求URL: /wolf/application/get

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

字段类型必填项说明
idstring要查询的应用ID

Response Body 响应

  • data:
字段类型必填项说明
applicationApplication查询的应用信息
  • reason:
    • ERR_OBJECT_NOT_FOUND 查询的应用ID不存在.

示例

  • 请求
curl "http://127.0.0.1:12180/wolf/application/get?id=test-app" \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "application": {
      "id": "test-app",
      "name": "test-application",
      "description": "description of application",
      "redirectUris": [
        "http://127.0.0.1:12180/callback2"
      ],
      "grants": null,
      "accessTokenLifetime": 604802,
      "refreshTokenLifetime": 2592002,
      "createTime": 1580486400,
      "updateTime": 1580486401
    }
  }
}

查询应用Secret

查询一个应用的Secret

请求方法: GET

请求URL: /wolf/application/secret

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

字段类型必填项说明
idstring要查询的应用ID

Response Body 响应

  • data:
字段类型必填项说明
secretstring应用secret.
  • reason:
    • ERR_OBJECT_NOT_FOUND 查询的应用ID不存在.

示例

  • 请求
curl "http://127.0.0.1:12180/wolf/application/secret?id=test-app" \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "secret": "d41d8cd98f00b204e9800998ecf8427e"
  }
}

应用列表查询

根据请求的参数, 查询应用列表信息

请求方法: GET

请求URL: /wolf/application/list

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

字段类型必填项说明
keystring按ID或名称进行匹配查询
sortstring排序字段, 如: -id: 表示以id降序排序. +name: 表示以name升序排序.
pageinteger页码, 从1开始递增, 默认为1
limitinteger页大小, 默认为10

Response Body 响应

  • data:
字段类型必填项说明
applicationsApplication[]用户的应用列表.
totalinteger总记录数

示例

  • 请求
curl http://127.0.0.1:12180/wolf/application/list \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "applications": [
     {
        "id": "restful",
        "name": "restful测试",
        "description": "restful",
        "redirectUris": [
          "http://localhost:12180/wolf/oauth2/client_app"
        ],
        "grants": null,
        "accessTokenLifetime": 3600,
        "refreshTokenLifetime": 2592000,
        "createTime": 1578817535,
        "updateTime": 1587375156
      },
      ...
    ],
    "total": 6
  }
}

所有应用列表

查询所有应用, 不分页.

请求方法: GET

请求URL: /wolf/application/list_all

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

Response Body 响应

  • data:
字段类型必填项说明
applicationsApplication[]用户的应用列表.
totalinteger总记录数

示例

  • 请求
curl http://127.0.0.1:12180/wolf/application/list_all \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "applications": [
     {
        "id": "restful",
        "name": "restful测试",
        "description": "restful",
        "redirectUris": [
          "http://localhost:12180/wolf/oauth2/client_app"
        ],
        "grants": null,
        "accessTokenLifetime": 3600,
        "refreshTokenLifetime": 2592000,
        "createTime": 1578817535,
        "updateTime": 1587375156
      },
      ...
    ],
    "total": 6
  }
}

删除应用

删除一个应用

请求方法: DELETE

请求URL: /wolf/application

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
idstring要删除的应用ID

Response Body 响应

  • data:
字段类型必填项说明
countinteger删除数量, 通常是1.
  • reason:
    • ERR_OBJECT_NOT_FOUND 要删除的应用不存在

示例

  • 请求
curl http://127.0.0.1:12180/wolf/application \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X DELETE \
-d '{
    "id": "test-app"
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "count": 1
  }
}

API-User

添加用户

添加一个新的用户

请求方法: POST

请求URL: /wolf/user

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
usernamestring用户名称, 登录系统时使用, 需要是字母+数字+下划线组成, 必须唯一.
nicknamestring用户昵称
passwordstring用户密码, 如果为空, 将由服务生成一个随机值.
emailstring用户的email.(未用到)
telstring用户的手机号
appIDsstring[]用户管理的有权限的appID列表.
managerstring管理权限, super: 超级管理员, 具有所有权限, admin: 具有基本管理权限(不可对应用和用户进行添加,修改,删除接口).
statusinteger用户状态, 0: 正常状态, -1: 禁用状态.

Response Body 响应

  • data:
字段类型必填项说明
userInfoUserInfo新添加的用户信息
passwordstring新添加的用户的密码

示例

  • 请求
curl http://127.0.0.1:12180/wolf/user \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-d '{
    "username": "test-user",
    "nickname": "user for test",
    "password": "abc#123",
    "email": "test-user@test.com",
    "tel": "123456",
    "appIDs": ["restful"],
    "manager": "none",
    "status": 0
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "password": "abc#123",
    "userInfo": {
      "id": 1024,
      "username": "test-user",
      "nickname": "user for test",
      "email": "test-user@test.com",
      "appIDs": [
        "restful"
      ],
      "manager": "none",
      "createTime": 1588576578
    }
  }

修改用户

修改用户信息

请求方法: PUT

请求URL: /wolf/user

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
idinteger用户ID, 要修改的用户ID
usernamestring用户名称, 登录系统时使用, 需要是字母+数字+下划线组成必须唯一.
nicknamestring用户昵称
emailstring用户的email.(未用到)
telstring用户的手机号
appIDsstring[]用户管理/有权限的appID列表.
managerstring管理权限, super: 超级管理员, 具有所有权限, admin: 具有基本管理权限(不可对应用和用户进行添加,修改,删除接口).
statusinteger用户状态, 0: 正常状态, -1: 禁用状态.

Response Body 响应

  • data:
字段类型必填项说明
userInfoUserInfo修改后的用户信息
  • reason:
    • ERR_USER_NOT_FOUND 要修改的用户ID不存在

示例

  • 请求
curl http://127.0.0.1:12180/wolf/user \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X PUT \
-d '{
    "id": 1024,
    "username": "test-user",
    "nickname": "nickname for test",
    "email": "test-user@test.com",
    "tel": "123456",
    "appIDs": ["restful"],
    "manager": "none",
    "status": 0
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "effects": 1,
    "userInfo": {
      "id": 1024,
      "username": "test-user",
      "nickname": "nickname for test",
      "email": "test-user@test.com",
      "appIDs": [
        "restful"
      ],
      "manager": "none",
      "createTime": 1588576578
    }
  }
}

查询当前用户信息

查询指定token的用户信息

请求方法: GET

请求URL: /wolf/user/info

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

Response Body 响应

  • data:
字段类型必填项说明
userInfoUserInfo修改后的用户信息
applicationsSimpleApplication[]用户关联的应用列表.

示例

  • 请求
curl "http://127.0.0.1:12180/wolf/user/info" \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应

  "ok": true,
  "reason": "",
  "data": {
    "userInfo": {
      "id": 696,
      "username": "root",
      "nickname": "root(super man)",
      "email": null,
      "appIDs": [
        "openresty"
      ],
      "manager": "super",
      "createTime": 1578401859
    },
    "applications": [
      {
        "id": "restful",
        "name": "restful测试",
        "description": "restful",
        "createTime": 1578817535
      },
      ...
    ]
  }
}

用户列表查询

根据请求的参数, 查询用户列表信息

请求方法: GET

请求URL: /wolf/user/list

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

字段类型必填项说明
keystring搜索username,nickname,tel字段.
usernamestring使用username进行精确匹配用户.
sortstring排序字段, 如: -id: 表示以id降序排序. +name: 表示以name升序排序.
pageinteger页码, 从1开始递增, 默认为1
limitinteger页大小, 默认为10

Response Body 响应

  • data:
字段类型必填项说明
userInfosUserInfo[]用户列表.
totalinteger总记录数

示例

  • 请求
curl http://127.0.0.1:12180/wolf/user/list \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "userInfos": [
     {
        "id": 697,
        "username": "admin",
        "nickname": "administrator",
        "email": null,
        "appIDs": [
          "openresty",
          "restful"
        ],
        "manager": "admin",
        "createTime": 1578401859
      },
      ...
    ],
    "total": 6
  }
}

重置用户密码

重置用户的密码

请求方法: PUT

请求URL: /wolf/user/reset_pwd

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
idinteger要重置密码的用户ID

Response Body 响应

  • data:
字段类型必填项说明
passwordstring重置后的密码
  • reason:
    • ERR_USER_NOT_FOUND 要删除的用户不存在
    • ERR_ACCESS_DENIED 只能超级管理员能执行此操作

示例

  • 请求
curl http://127.0.0.1:12180/wolf/user/reset_pwd \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X PUT \
-d '{
    "id": 696
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "password": "197TLR0dPVdm"
  }
}

删除用户

删除一个用户

请求方法: DELETE

请求URL: /wolf/user

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
idinteger要删除的用户ID

Response Body 响应

  • data:
字段类型必填项说明
userInfoUserInfo删除的用户信息
countinteger删除数量, 通常是1.
  • reason:
    • ERR_USER_NOT_FOUND 要删除的用户不存在
    • ERR_PERMISSION_DENY 不能删除super账号
    • ERR_ACCESS_DENIED 只能超级管理员能执行此操作

示例

  • 请求
curl http://127.0.0.1:12180/wolf/user \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X DELETE \
-d '{
    "id": 2756
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "count": 1
  }
}

API-Role

添加角色

添加一个新的角色

请求方法: POST

请求URL: /wolf/role

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
appIDstring应用ID, 角色是只能属于某一个应用的.
idstring角色ID, 必须应用内唯一
namestring角色名称, 必须应用内唯一
descriptionstring角色说明
permIDsstring[]角色对应的权限ID列表.

Response Body 响应

  • data:
字段类型必填项说明
roleRole新添加的角色信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/role \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-d '{
    "id": "test-role",
    "appID": "restful",
    "name": "role for test",
    "description": "description of role",
    "permIDs": ["PERM_XXX"]
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "role": {
      "id": "test-role",
      "appID": "restful",
      "name": "role for test",
      "description": "description of role",
      "permIDs": [
        "PERM_XXX"
      ],
      "createTime": 1588583707
    }
  }
}

修改角色

修改角色信息

请求方法: PUT

请求URL: /wolf/role

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
appIDstring应用ID, 不能修改
idstring角色ID, 不能修改
namestring角色名称, 必须应用内唯一
descriptionstring角色说明
permIDsstring[]角色对应的权限ID列表.

Response Body 响应

  • data:
字段类型必填项说明
roleRole修改后的角色信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/role \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X PUT \
-d '{
    "id": "test-role",
    "appID": "restful",
    "name": "role for test",
    "description": "description of role",
    "permIDs": ["PERM_YYY"]
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "role": {
      "id": "test-role",
      "appID": "restful",
      "name": "role for test",
      "description": "description of role",
      "permIDs": [
        "PERM_YYY"
      ],
      "createTime": 1588583707
    }
  }
}

添加角色权限

添加角色权限. 与PUT方法不同, 此方法只添加新的权限. 原有权限保持不变.

请求方法: PATCH

请求URL: /wolf/role

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
appIDstring应用ID, 不能修改
idstring角色ID, 不能修改
permIDsstring[]要给角色添加的权限ID列表.

Response Body 响应

  • data:
字段类型必填项说明
roleRole修改后的角色信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/role \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X PATCH \
-d '{
    "id": "test-role",
    "appID": "restful",
    "name": "role for test",
    "description": "description of role",
    "permIDs": ["PERM_YYY"]
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "role": {
      "id": "test-role",
      "appID": "restful",
      "name": "role for test",
      "description": "description of role",
      "permIDs": [
        "PERM_XXX", "PERM_YYY"
      ],
      "createTime": 1588583707
    }
  }
}

角色列表查询

根据请求的参数, 查询角色列表信息

请求方法: GET

请求URL: /wolf/role/list

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

字段类型必填项说明
appIDstring应用ID
keystring按ID或名称进行匹配查询
sortstring排序字段, 如: -id: 表示以id降序排序. +name: 表示以name升序排序.
pageinteger页码, 从1开始递增, 默认为1
limitinteger页大小, 默认为10

Response Body 响应

  • data:
字段类型必填项说明
rolesRole[]角色列表.
totalinteger总记录数

示例

  • 请求
curl http://127.0.0.1:12180/wolf/role/list?appID=restful \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "roles": [
      {
        "id": "test-role",
        "name": "role for test",
        "description": "description of role",
        "appID": "restful",
        "permIDs": [
          "PERM_YYY"
        ],
        "createTime": 1588583707,
        "updateTime": 1588586200
      },
      ...
    ],
    "total": 5
  }
}

删除角色

删除一个角色

请求方法: DELETE

请求URL: /wolf/role

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
appIDstring应用ID
idstring要删除的角色ID

Response Body 响应

  • data:
字段类型必填项说明
countinteger删除数量, 通常是1.

示例

  • 请求
curl http://127.0.0.1:12180/wolf/role \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X DELETE \
-d '{
    "id": "test-role",
    "appID": "restful"
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "count": 1
  }
}

API-Permission

添加权限

添加一个新的权限

请求方法: POST

请求URL: /wolf/permission

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
appIDstring应用ID, 权限是只能属于某一个应用的.
idstring权限ID, 必须应用内唯一
namestring权限名称, 必须应用内唯一
descriptionstring权限说明
categoryIDinteger权限对应的分类ID

Response Body 响应

  • data:
字段类型必填项说明
permissionPermission新添加的权限信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/permission \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-d '{
    "id": "test-permission",
    "appID": "restful",
    "name": "permission for test",
    "description": "description of permission",
    "categoryID": 1
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "permission": {
      "id": "test-permission",
      "appID": "restful",
      "name": "permission for test",
      "description": "description of permission",
      "categoryID": 1,
      "createTime": 1588658062
    }
  }
}

修改权限

修改权限信息

请求方法: PUT

请求URL: /wolf/permission

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
appIDstring应用ID, 不能修改
idstring权限ID, 不能修改
namestring权限名称, 必须应用内唯一
descriptionstring权限说明
categoryIDinteger权限对应的分类ID

Response Body 响应

  • data:
字段类型必填项说明
permissionPermission修改后的权限信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/permission \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X PUT \
-d '{
    "id": "test-permission",
    "appID": "restful",
    "name": "permission for test2",
    "description": "description of permission2",
    "categoryID": 2
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "permission": {
      "id": "test-permission",
      "appID": "restful",
      "name": "permission for test2",
      "description": "description of permission2",
      "createTime": 1588658062
    }
  }
}

权限列表查询

根据请求的参数, 查询权限列表信息

请求方法: GET

请求URL: /wolf/permission/list

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

字段类型必填项说明
appIDstring应用ID
keystring按ID或名称进行匹配查询
sortstring排序字段, 如: -id: 表示以id降序排序. +name: 表示以name升序排序.
pageinteger页码, 从1开始递增, 默认为1
limitinteger页大小, 默认为10

Response Body 响应

  • data:
字段类型必填项说明
permissionsPermission[]权限列表.
totalinteger总记录数

示例

  • 请求
curl http://127.0.0.1:12180/wolf/permission/list?appID=restful \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应

  "ok": true,
  "reason": "",
  "data": {
    "permissions": [
      {
        "id": "test-permission",
        "appID": "restful",
        "name": "permission for test2",
        "description": "description of permission2",
        "categoryID": 2,
        "createTime": 1588658062,
        "updateTime": 1588658246,
        "category_id": 2,
        "category": null
      },
      ...
    ],
    "total": 2
  }
}

删除权限

删除一个权限

请求方法: DELETE

请求URL: /wolf/permission

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
appIDstring应用ID
idstring要删除的权限ID

Response Body 响应

  • data:
字段类型必填项说明
countinteger删除数量, 通常是1.
  • reason
    • ERR_ACCESS_DENIED 要删除的权限正在被使用, 无法删除.

示例

  • 请求
curl http://127.0.0.1:12180/wolf/permission \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X DELETE \
-d '{
    "id": "test-permission",
    "appID": "restful"
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "count": 1
  }
}

API-User-Role

用户角色相关操作都只能作用于一个应用. 所以相关接口都需要传递 userIDappID 参数.

Get User Roles

查询用户的角色及权限信息

请求方法: GET

请求URL: /wolf/user-role

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

字段类型必填项说明
userIDintegerYes需要查询角色与权限的UserID
appIDstringYes需要查询角色与权限的应用ID.

示例

  • 请求
curl "http://127.0.0.1:12180/wolf/user-role?userID=1&appID=restful" \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "userRole": {
      "userID": 1,
      "appID": "restful",
      "permIDs": [
        "RESTFUL_INDEX"
      ],
      "roleIDs": [
        "application"
      ],
      "createTime": 1609055508
    }
  }
}

Set User Roles

设置用户角色与权限

请求方法: POST

请求URL: /wolf/user-role/set

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
userIDintegerYes需要设置角色与权限的UserID
appIDstringYes需要设置角色与权限的应用ID.
permIDsstring[]Yes要设置的权限列表
roleIDsstring[]Yes要设置的角色列表

示例

  • 请求
curl http://127.0.0.1:12180/wolf/user-role/set \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-d '{
    "userID": 1,
    "appID": "restful",
    "permIDs": ["RESTFUL_INDEX"],
    "roleIDs": ["application"]
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "userRole": {
      "userID": 1,
      "appID": "restful",
      "permIDs": [
        "RESTFUL_INDEX"
      ],
      "roleIDs": [
        "application"
      ],
      "createTime": 1609054766
    }
  }
}

Clear User Roles

清除用户的某个应用的角色及权限.

请求方法: DELETE

请求URL: /wolf/user-role

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body 参数

字段类型必填项说明
userIDintegerYes需要清除角色与权限的UserID
appIDstringYes需要清除角色与权限的应用ID.

示例

  • 请求
curl http://127.0.0.1:12180/wolf/user-role \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X DELETE \
-d '{
    "userID": 1,
    "appID": "restful"
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "count": 1
  }
}

API-Category

添加分类

添加一个新的分类

请求方法: POST

请求URL: /wolf/category

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
appIDstring应用ID, 分类是只能属于某一个应用的.
namestring分类名称, 必须应用内唯一

Response Body 响应

  • data:
字段类型必填项说明
categoryCategory新添加的分类信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/category \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-d '{
    "appID": "restful",
    "name": "category for test"
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "category": {
      "id": 744,
      "appID": "restful",
      "name": "category for test",
      "createTime": 1588659229
    }
  }
}

修改分类

修改一个分类

请求方法: PUT

请求URL: /wolf/category

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
idinteger分类ID, 不能修改
namestring分类名称, 必须应用内唯一

Response Body 响应

  • data:
字段类型必填项说明
categoryCategory修改后的分类信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/category \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X PUT \
-d '{
    "id": 744,
    "name": "category for test2"
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "category": {
      "id": 744,
      "appID": "restful",
      "name": "category for test2",
      "createTime": 1588659229
    }
  }
}

分类列表查询

根据请求的参数, 查询分类列表信息

请求方法: GET

请求URL: /wolf/category/list

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

字段类型必填项说明
appIDstring应用ID
keystring按名称进行匹配查询
sortstring排序字段, 如: -id: 表示以id降序排序. +name: 表示以name升序排序.
pageinteger页码, 从1开始递增, 默认为1
limitinteger页大小, 默认为10

Response Body 响应

  • data:
字段类型必填项说明
categorysCategory[]分类列表.
totalinteger总记录数

示例

  • 请求
curl http://127.0.0.1:12180/wolf/category/list?appID=restful \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "categorys": [
      {
        "id": 744,
        "appID": "restful",
        "name": "category for test2",
        "createTime": 1588659229,
        "updateTime": 1588659461
      }
    ],
    "total": 1
  }
}

删除分类

删除一个分类

请求方法: DELETE

请求URL: /wolf/category

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
idstring要删除的分类ID

Response Body 响应

  • data:
字段类型必填项说明
countinteger删除数量, 通常是1.

示例

  • 请求
curl http://127.0.0.1:12180/wolf/category \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X DELETE \
-d '{
    "id": 744
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "count": 1
  }
}

API-Resource

添加资源

添加一个新的资源

请求方法: POST

请求URL: /wolf/resource

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
appIDstring应用ID, 资源是只能属于某一个应用的.
matchTypestring资源匹配类型, equal: 完全匹配, suffix: 后缀匹配, prefix: 前缀匹配.
namestring资源名称, 当matchType为equal时, name为URL, 当matchType为suffix时, name为后缀值, 当matchType为prefix时, name为URL的前缀.
actionstring资源的动作/操作, 通常是HTTP请求方法. 有以下可选值: ALL, GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH. 其中ALL表示可匹配所有HTTP方法.
permIDstring访问该资源需要的权限.

Response Body 响应

  • data:
字段类型必填项说明
resourceResource新添加的资源信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/resource \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-d '{
    "appID": "restful",
    "matchType": "equal",
    "name": "/path/to/resource",
    "action": "GET",
    "permID": "PERM_XXX"
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "resource": {
      "id": 8512,
      "appID": "restful",
      "matchType": "equal",
      "name": "/path/to/resource",
      "priority": 10483,
      "action": "GET",
      "permID": "PERM_XXX",
      "createTime": 1588660594
    }
  }
}

修改资源

修改一个资源

请求方法: PUT

请求URL: /wolf/resource

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
idstring资源ID, 不能修改
matchTypestring资源匹配类型, equal: 完全匹配, suffix: 后缀匹配, prefix: 前缀匹配.
namestring资源名称, 当matchType为equal时, name为URL, 当matchType为suffix时, name为后缀值, 当matchType为prefix时, name为URL的前缀.
actionstring资源的动作/操作, 通常是HTTP请求方法. 有以下可选值: ALL, GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH. 其中ALL表示可匹配所有HTTP方法.
permIDstring访问该资源需要的权限.

Response Body 响应

  • data:
字段类型必填项说明
resourceResource修改后的资源信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/resource \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X PUT \
-d '{
   "id": 8512,
    "matchType": "equal",
    "name": "/path/to/resource",
    "action": "ALL",
    "permID": "PERM_YYY"
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "resource": {
      "id": 8512,
      "appID": "restful",
      "matchType": "equal",
      "name": "/path/to/resource",
      "priority": 11483,
      "action": "ALL",
      "permID": "PERM_YYY",
      "createTime": 1588660594
    }
  }
}

资源列表查询

根据请求的参数, 查询资源列表信息

请求方法: GET

请求URL: /wolf/resource/list

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

字段类型必填项说明
appIDstring应用ID
keystring按资源名称或访问权限进行匹配查询
sortstring排序字段, 如: -id: 表示以id降序排序. +name: 表示以name升序排序.
pageinteger页码, 从1开始递增, 默认为1
limitinteger页大小, 默认为10

Response Body 响应

  • data:
字段类型必填项说明
resourcesResource[]资源列表.
totalinteger总记录数

示例

  • 请求
curl http://127.0.0.1:12180/wolf/resource/list?appID=restful \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "resources": [
      {
        "id": 8512,
        "appID": "restful",
        "matchType": "equal",
        "name": "/path/to/resource",
        "priority": 11483,
        "action": "ALL",
        "permID": "PERM_YYY",
        "createTime": 1588660594
      },
      ...
    ],
    "total": 3
  }
}

删除资源

删除一个资源

请求方法: DELETE

请求URL: /wolf/resource

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Request Body参数

字段类型必填项说明
idinteger要删除的资源ID

Response Body 响应

  • data:
字段类型必填项说明
countinteger删除数量, 通常是1.

示例

  • 请求
curl http://127.0.0.1:12180/wolf/resource \
-H "Content-Type: application/json" \
-H "x-rbac-token: $WOLF_TOKEN" \
-X DELETE \
-d '{
    "id": 8512
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "count": 1
  }
}

API-AccessLog

访问日志列表查询

根据请求的参数, 查询访问日志列表信息

请求方法: GET

请求URL: /wolf/access-log/list

Header 参数: 需要 Console登录的token, 通过 x-rbac-token 请求头传递.

Query参数

字段类型必填项说明
appIDstring应用ID
usernamestring按用户名或用户昵称进行匹配查询
actionstring资源动作
resNamestring资源名称
ipstring操作该资源的用户的IP
statusinteger资源操作HTTP状态码
startTimeinteger访问时间-开始时间
endTimeinteger访问时间-结束时间
sortstring排序字段, 如: -id: 表示以id降序排序. +name: 表示以name升序排序.
pageinteger页码, 从1开始递增, 默认为1
limitinteger页大小, 默认为10

Response Body 响应

  • data:
字段类型必填项说明
accessLogsAccessLog[]访问日志列表.
totalinteger总记录数

示例

  • 请求
curl http://127.0.0.1:12180/wolf/access-log/list?appID=restful \
-H "x-rbac-token: $WOLF_TOKEN"
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "accessLogs": [
      {
        "id": 27999,
        "appID": "restful",
        "userID": "749",
        "username": "test",
        "nickname": "test",
        "action": "GET",
        "resName": "/",
        "matchedResource": {},
        "status": 401,
        "body": {},
        "contentType": null,
        "date": "2020-02-27",
        "accessTime": 1582816829,
        "ip": "127.0.0.1"
      },
      ...
    ],
    "total": 5
  }
}

API-RBAC

所有以 /wolf/rbac 开头的接口, 都是提供给Wolf的 Agent 模块来调用的. 主要用于三方应用的登录及鉴权处理.

Rbac-Login-Page

Agent登录页面

请求方法: GET

请求URL: /wolf/rbac/login

Query参数

字段类型必填项说明
appidstring要登录的应用ID, 如果不带参数, 可以在页面中输入
return_tostring设置登录成功后, 跳转的地址. 默认为 /

响应

登录页面HTML.

示例

  • 请求
http://127.0.0.1:12180/wolf/rbac/login?return_to=%2Fwolf%2Foauth2%2Flogin_status&appid=restful
  • 响应页面
登录页面
登录页面

RBAC-Restful-Login

Rbac登录接口

请求方法: POST

请求URL: /wolf/rbac/login.rest

Request Body参数

字段类型必填项说明
appidstring应用ID
usernamestring登录用户名
passwordstring登录密码
authTypeinteger认证类型, 1: 密码, 2: LDAP

Response Body 响应

  • data:
字段类型必填项说明
userInfoSimpleUserInfo用户基本信息
tokenstring登录token
  • reason
    • ERR_USERNAME_MISSING 缺少用户名
    • ERR_PASSWORD_MISSING 缺少密码
    • ERR_APPID_MISSING 缺少appid
    • ERR_USER_NOT_FOUND 用户不存在
    • ERR_PASSWORD_ERROR 密码错误
    • ERR_USER_DISABLED 用户被禁用
    • ERR_LDAP_CONFIG_NOT_FOUND 在LDAP登录时,服务器未配置LDAP

示例

  • 请求
curl http://127.0.0.1:12180/wolf/rbac/login.rest \
-H "Content-Type: application/json" \
-X POST \
-d '{
    "username": "root",
    "password": "123456",
    "appid": "restful"
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "userInfo": {
      "id": 696,
      "username": "root",
      "nickname": "root(super man)"
    },
    "token": "RBAC_TOKEN"
  }

为方便执行后面的示例, 可将上面的 token 保存为shell环境下的一个变量:

export RBAC_TOKEN="WOLF-RBAC-TOKEN-ENCODE-BY-JWT"

token过期时间默认为30天. 可通过环境变量 RBAC_TOKEN_EXPIRE_TIME 来修改, 单位是秒. 修改之后, 需要重启Wolf-Server

RBAC页面登录提交

请求方法: POST

请求URL: /wolf/rbac/login.submit

Content-Type: application/x-www-form-urlencoded

Request Body参数

字段类型必填项说明
appidstring应用ID
usernamestring登录用户名
passwordstring登录密码
return_tostring设置登录成功后, 跳转的地址. 默认为 /

响应

  • 失败时:

使用302重定向到登录页面.

  • 成功时:

使用302重定向到return_to指定的页面. 并设置token到cookie中, key为x-rbac-token.

示例

  • 请求
curl 'http://127.0.0.1:12180/wolf/rbac/login.submit' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'return_to=%2F&appid=restful&username=root&password=123456'
  • 响应
< HTTP/1.1 302 Found
< Vary: Origin
< Access-Control-Allow-Origin: *
< Set-Cookie: x-rbac-token=RBAC-TOKEN; path=/; expires=Tue, 09 Jun 2020 08:47:21 GMT
< Location: /
< Content-Type: text/html; charset=utf-8
< Content-Length: 33

RBAC用户信息查询

查询当前登录用户信息

请求方法: GET

请求URL: /wolf/rbac/user_info

Query参数

响应

字段类型必填项说明
userInfoUserInfo用户信息

示例

  • 请求
curl http://127.0.0.1:12180/wolf/rbac/user_info \
-H "Cookie: x-rbac-token=$RBAC_TOKEN"
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "userInfo": {
      "id": 696,
      "username": "root",
      "nickname": "root(super man)",
      "email": null,
      "appIDs": [
        "openresty"
      ],
      "manager": "super",
      "lastLogin": 1589100441,
      "profile": null,
      "createTime": 1578401859,
      "permissions": {},
      "roles": {}
    }
  }
}

logout

请求方法: POST

请求URL: /wolf/rbac/logout

Query参数

响应

操作完成后, 服务器将Cookie中的x-rbac-token设置为logouted. 并将302跳转到登录页面.

示例

  • 请求
curl http://127.0.0.1:12180/wolf/rbac/logout \
-H "Cookie: x-rbac-token=$RBAC_TOKEN"
  • 响应
< HTTP/1.1 302 Found
< x-rbac-userID: 696
< x-rbac-username: root
< Set-Cookie: x-rbac-token=logouted; path=/; expires=Tue, 09 Jun 2020 09:04:56 GMT
< Location: /wolf/rbac/login.html?appid=restful
< Content-Type: text/html; charset=utf-8
< Content-Length: 101

修改密码接口

请求方法: POST

请求URL: /wolf/rbac/change_pwd

Request Body参数

字段类型必填项说明
oldPasswordstring原有密码
newPasswordstring新密码

Response Body 响应

  • data:

  • reason
    • ERR_PASSWORD_CHANGE_NOT_ALLOWED 服务器不允许修改密码.
    • ERR_OLD_PASSWORD_REQUIRED 缺少原密码
    • ERR_NEW_PASSWORD_REQUIRED 缺少新密码
    • TOKEN_USER_NOT_FOUND 用户不存在
    • ERR_OLD_PASSWORD_INCORRECT 原密码错误

示例

  • 请求
curl http://127.0.0.1:12180/wolf/rbac/change_pwd \
-H "Cookie: x-rbac-token=$RBAC_TOKEN" \
-H "Content-Type: application/json" \
-X POST \
-d '{
    "oldPassword": "old-password",
    "newPassword": "new-password"
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {}
}

权限检查接口

检查用户是否对指定资源(appid + action + resName)具有访问权限.

请求方法: POST

请求URL: /wolf/rbac/access_check

Request Body参数

字段类型必填项说明
actionstring动作, 一般是HTTP请求方法.
resNamestring资源名称, 一般是 URL Path 或资源后缀.

appid不需要传递, 服务直接从token中获取

Response Body 响应

如果有权限, 服务器返回200状态码, json中 ok=true, 并返回用户信息 如果没权限, 服务器返回401状态码, json中 ok=false, 并返回用户信息

  • data:
字段类型必填项说明
userInfoUserInfo当前用户信息
  • reason 没权限时为相应的提示信息.

示例

  • 请求
curl http://127.0.0.1:12180/wolf/rbac/access_check \
-H "Cookie: x-rbac-token=$RBAC_TOKEN" \
-H "Content-Type: application/json" \
-X POST \
-d '{
    "action": "GET",
    "resName": "/"
}'
  • 响应
{
  "ok": true,
  "reason": "",
  "data": {
    "userInfo": {
      "id": 696,
      "username": "root",
      "nickname": "root(super man)",
      "email": null,
      "appIDs": [
        "openresty"
      ],
      "manager": "super",
      "lastLogin": 1589100441,
      "profile": null,
      "createTime": 1578401859,
      "permissions": {},
      "roles": {}
    }
  }
}

Back to TOC