auth_basic_kv 权限校验
1.功能描述
auth_basic_kv,利用kv存储用户名/密码:提供HTTP接口,实现动态增加条目,或修改密码,也支持删除
2.依赖模块
njet_ctrl.conf:
load_module modules/njt_http_auth_api_module.so; #auth kv 模块加载
3.指令说明
Syntax: | auth_basic_kv {prefix}; |
---|---|
Default: | — |
Context: | main, server, location, limit_conf |
该指令可配置在main, server, location, limit_conf 块中
prefix支持变量,以便使用server_name等,方便配置。
njet_ctrl.conf:
...
load_module modules/njt_http_range_api_module.so; #以range api 设置权限验证普通字符串前缀为例测试
load_module modules/njt_http_ssl_api_module.so; #以range api 设置权限验证变量前缀为例测试
load_module modules/njt_http_auth_api_module.so; #auth kv 模块加载
...
http {
server {
listen 8081;
server_name www.test.com; #下面使用$server_name变量测试
location /api {
dyn_module_api;
api_limit_except /v1/range PUT {
auth_basic "OpenNJet range API";
auth_basic_kv test_kv; #range 使用固定前缀字符串测试
}
api_limit_except /v1/ssl PUT {
auth_basic "OpenNJet ssl API";
auth_basic_kv $server_name; #ssl 使用变量前缀测试
}
}
location /doc {
doc_api;
}
}
}
4.API
4.1 API说明
设置接口:
PUT http://192.168.40.158:8088/api/v1/auth_kv/password
修改密码接口:
PATCH http://192.168.40.158:8088/api/v1/auth_kv/password/test_kv/用户名
删除用户接口
DELETE http://192.168.40.158:8088/api/v1/auth_kv/password/test_kv/用户名
4.2 调用样例
设置用户名和密码
curl -X 'PUT' \
'http://192.168.40.158:8088/api/v1/auth_kv/password' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d '{
"prefix": "test_kv",
"user_name": "njet",
"password": "123456"
}'
修改密码:
针对njet 用户修改密码
curl -X 'PATCH' \
'http://192.168.40.158:8088/api/v1/auth_kv/password/test_kv/njet' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d '{
"password": "654321"
}'
删除用户:
curl -X 'DELETE' \
'http://192.168.40.158:8088/api/v1/auth_kv/password/test_kv/njet' \
-H 'accept: */*'
返回:
{
"code": 0,
"msg": "success."
}