Skip to content

sindwerra/authService

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AuthService

目录

基本介绍

AuthService是一个基于Django搭建的简单后台API服务,其提供了基本的用户创建以及鉴权功能,同时提供了角色创建和绑定用户的功能

安装并启动

将仓库代码clone到本地

git clone https://github.com/sindwerra/authService.git

在本地代码根目录下安装配置并启动虚拟环境

python3 -m venv .
source ./bin/activate

执行pip命令安装依赖包

pip install -r requirements.txt

启动

执行测试用例

在真正启动服务前,可以先通过Django提供的test方法执行测试用例

python manage.py test --pattern="*_test.py" 

控制台命令行启动

python manage.py runserver

API

请注意,API接口的所有路径前缀都带有api/

创建新用户

创建新用户,如果指定的username已经存在,则创建失败,返回400状态码并给出创建失败提示

POST user/add/

示例请求
username: 新增用户的用户名,必须与现有的用户用户名不同
password: 新增用户的密码

{
  "username": "sindwerra",
  "password": "102102102a"
}

示例响应(创建成功)

"User Creation Success!"

删除用户

删除用户,如果指定的用户username不存在,则删除失败,返回400状态码并给出删除失败提示

DELETE user/delete/

示例请求
username: 需要删除的用户的用户名

{
  "username": "sindwerra"
}

示例响应(删除成功)

"User Already Deleted."

用户登录

用户登录,登录成功会返回一个过期时间为2h(默认配置,可以通过修改settings.py中的TOKEN_EXPIRATION_DURATION_HOUR来修改过期时间)令牌, 该令牌用于访问获取当前用户绑定角色检查角色是否与当前用户绑定两个需要鉴权的API接口

POST authenticate/

示例请求
username: 用户名
password: 密码

{
  "username": "sindwerra",
  "password": "102102102a"
}

示例响应(登录成功)

"This is an example token."

用户Token失效

用户Token失效,会将当前生效的Token直接失效,如果Token不存在,则返回400状态码并给出提示

POST invalidate/

示例请求
token: 用户身份识别令牌

{
  "token": "example-token"
}

示例响应(失效成功)

"Token invalidated"

新增角色

新增角色,如果角色已存在,则返回400状态码并给出提示

POST role/add/

示例请求
role: 需要增加的角色的角色名称,必须与现有角色名不同

{
  "role": "demon hunter"
}

示例响应(创建成功)

"Role Creation Success!"

删除角色

删除指定的角色,如果该角色不存在,则返回400状态码并给出提示

DELETE role/delete

示例请求
role: 需要删除的角色的角色名

{
  "role": "demon hunter"
}

示例响应(删除成功)

"Role Already Deleted."

绑定用户与角色

绑定指定用户和角色,如果用户或者角色不存在,则返回400状态码并给出提示

POST role/assign/

示例请求
role: 需要绑定的角色名称
user: 需要绑定的用户的用户名

{
  "role": "witch",
  "user": "sindwerra"
}

示例响应(绑定成功)

"Binding Success"

使用Token获取当前用户绑定的所有角色

使用Token获取对应用户绑定角色的列表,如果Token不存在或者失效,则返回400状态码并给出提示

GET role/list/

示例请求
token: 用户身份识别令牌

{
  "token": "example-token"
}

示例响应(获取成功)

[
  "role_a", 
  "role_b",
  "role_c"
]

使用Token获取当前用户是否和指定角色绑定

使用Token获取当前用户是否和指定角色绑定,如果Token不存在或失效,或者角色不存在,则返回400状态码并给出提示

POST role/check/

示例请求
token: 用户身份识别令牌
role: 需要检查是否绑定用户的角色

{
  "token": "example-token",
  "role": "witch"
}

示例响应(用户与角色已绑定)

"True"

第三方包

  1. Django (服务端框架)
  2. PyJWT(成熟的Python Token使用方案)
  3. django-rest-framework(基于Django的成熟的API框架工具)

TIPS

apiTests路径下有一个基本的sample_test.http文件可以在PyCharm中直接调用检查各接口的运行

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages