add mod
前端:js+html (能用boostrap框架最好) 前端要求兼容移动端和PC端
后端:golang (gin框架带gorm完成增删查改)
数据库:mysql (数据库中已存在user表并存在用户数据) 数据库表结构:
user表:用户表 包含字段:id,create_time,name,email,password,role(整型类型,角色管理员为0,普通用户为1),status(整型类型,停用状态为0,启用状态为1),update_time(更新时间,datetime类型),end_time(到期时间,datetime类型)
freeradius服务默认搭建radcheck表:ocserv服务验证用户表 表结构:
CREATE TABLE radreply ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(64) NOT NULL, attribute VARCHAR(64) NOT NULL, op CHAR(2) DEFAULT ‘=’, value VARCHAR(253) NOT NULL );
服务器:linux(Ubuntu)
redis:redis服务(用于存储ocserv用户在线信息,将必要的信息存在其中,减少数据库查询次数)
登录系统 登录接口 /login 请求方式:POST 请求参数:name,password 返回参数:token 功能描述:请求中带有入参name,password,查询user表后如果信息正确,使用JWT生成token,返回给前端,否则返回错误信息。
注册接口 /register 请求方式:POST 请求参数:name,password,email 返回参数:token 功能描述:请求中带有入参name,password,email,查询user表后如果信息正确,使用JWT生成token,返回给前端,否则返回错误信息。
用户信息详情查询接口 /user_info 请求方式:GET 请求参数:token 返回参数:用户信息 功能描述:请求中带有入参token,查询user表后如果信息正确,返回用户信息,否则返回错误信息。
用户列表查询接口 /user_list 请求方式:GET 请求参数:token 返回参数:用户列表 功能描述:请求中带有入参token,如果token对应用户的角色是管理员(user表role字段为0)是查询user表后如果信息正确,返回用户列表,否则返回错误信息。
用户信息修改接口 /user_update 请求方式:POST 请求参数:token,id,name,email,password,role,status,end_time,updata_time 返回参数:用户信息 功能描述:请求中带有入参token,id,name,email,password,role,status,end_time,updata_time,如果token对应用户的角色是管理员(user表role字段为0)是查询user表后如果信息正确,修改用户信息,否则返回错误信息。
ocserv服务管理
启用用户接口 /ocserv_user_start 请求方式:POST 请求参数:times,name 返回参数:用户信息 功能描述:请求中有入参times(默认120),name,如果user表中存在name且对应status字段为0,则修改此name对应的end_time和update_time,end_time=当前时间+times天,update_time=当前时间并将status置为1。如果name存在且status字段为1,则修改此name对应的end_time=end_time+times天,update_time=当前时间。如果name不存在,则返回错误信息。同时对在radius服务对应的radcheck表中增加一条记录,username赋值name,attribute赋值’Cleartext-Password’,op赋值’:=’,value赋值password。
停用用户接口 /ocserv_user_stop 请求方式:POST 请求参数:name 返回参数:用户信息 功能描述:请求中有入参name,如果user表中存在name且对应status字段为1,并且当前时间>end_time,则修改此name对应的status字段为0,update_time=当前时间。如果name不存在,则返回错误信息。同时对在radius服务对应的radcheck表中删除一条满足username=name的记录。
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
golang搭建的ocserv服务系统
功能介绍:
系统技术架构:
前端:js+html (能用boostrap框架最好) 前端要求兼容移动端和PC端
后端:golang (gin框架带gorm完成增删查改)
数据库:mysql (数据库中已存在user表并存在用户数据) 数据库表结构:
user表:用户表 包含字段:id,create_time,name,email,password,role(整型类型,角色管理员为0,普通用户为1),status(整型类型,停用状态为0,启用状态为1),update_time(更新时间,datetime类型),end_time(到期时间,datetime类型)
freeradius服务默认搭建radcheck表:ocserv服务验证用户表 表结构:
CREATE TABLE radreply ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(64) NOT NULL, attribute VARCHAR(64) NOT NULL, op CHAR(2) DEFAULT ‘=’, value VARCHAR(253) NOT NULL );
服务器:linux(Ubuntu)
redis:redis服务(用于存储ocserv用户在线信息,将必要的信息存在其中,减少数据库查询次数)
后端接口实现:
登录系统 登录接口 /login 请求方式:POST 请求参数:name,password 返回参数:token 功能描述:请求中带有入参name,password,查询user表后如果信息正确,使用JWT生成token,返回给前端,否则返回错误信息。
注册接口 /register 请求方式:POST 请求参数:name,password,email 返回参数:token 功能描述:请求中带有入参name,password,email,查询user表后如果信息正确,使用JWT生成token,返回给前端,否则返回错误信息。
用户信息详情查询接口 /user_info 请求方式:GET 请求参数:token 返回参数:用户信息 功能描述:请求中带有入参token,查询user表后如果信息正确,返回用户信息,否则返回错误信息。
用户列表查询接口 /user_list 请求方式:GET 请求参数:token 返回参数:用户列表 功能描述:请求中带有入参token,如果token对应用户的角色是管理员(user表role字段为0)是查询user表后如果信息正确,返回用户列表,否则返回错误信息。
用户信息修改接口 /user_update 请求方式:POST 请求参数:token,id,name,email,password,role,status,end_time,updata_time 返回参数:用户信息 功能描述:请求中带有入参token,id,name,email,password,role,status,end_time,updata_time,如果token对应用户的角色是管理员(user表role字段为0)是查询user表后如果信息正确,修改用户信息,否则返回错误信息。
ocserv服务管理
启用用户接口 /ocserv_user_start 请求方式:POST 请求参数:times,name 返回参数:用户信息 功能描述:请求中有入参times(默认120),name,如果user表中存在name且对应status字段为0,则修改此name对应的end_time和update_time,end_time=当前时间+times天,update_time=当前时间并将status置为1。如果name存在且status字段为1,则修改此name对应的end_time=end_time+times天,update_time=当前时间。如果name不存在,则返回错误信息。同时对在radius服务对应的radcheck表中增加一条记录,username赋值name,attribute赋值’Cleartext-Password’,op赋值’:=’,value赋值password。
停用用户接口 /ocserv_user_stop 请求方式:POST 请求参数:name 返回参数:用户信息 功能描述:请求中有入参name,如果user表中存在name且对应status字段为1,并且当前时间>end_time,则修改此name对应的status字段为0,update_time=当前时间。如果name不存在,则返回错误信息。同时对在radius服务对应的radcheck表中删除一条满足username=name的记录。