Files
kami_boss/internal/routers/router.go
danial 74b11c4c70 feat(security): 增加登录频率限制和TOTP二次验证访问控制
- 配置文件中更新数据库密码
- 前端视图中改进TOTP模态框,增加二次验证步骤和状态切换
- 新增前端TOTP验证逻辑,通过Ajax与后端交互验证权限与操作
- 登录控制器中添加每分钟6次的IP登录频率限制,防止暴力尝试
- 修正登录逻辑,阻止频率超限请求,返回友好提示
- 增加TOTP访问权限接口,验证用户访问TOTP信息时需先通过二次验证
- 实现临时10分钟内有效的TOTP访问权限Session管理
- 路由中新增TOTP访问验证路由,支持前端二次验证流程
- 并发安全处理登录频率限制数据,防止竞态条件
- 前端按钮显示与隐藏按验证状态动态变化,提升用户体验
2025-11-24 22:39:12 +08:00

126 lines
8.2 KiB
Go

package routers
import (
"boss/internal/controllers"
"github.com/beego/beego/v2/server/web"
)
func test() {
//web.Router("/accept/notify", &controllers.TestController{}, "*:AcceptNotify")
}
func init() {
test()
//beego.Router("/", &controllers.PageController{}, "*:Index")
//添加过滤函数
web.Router("/filter.html", &controllers.FilterController{}, "*:Filter")
//登录验证接口
web.Router("/login", &controllers.LoginController{}, "*:Login")
web.Router("/logout", &controllers.LoginController{}, "*:Logout")
web.Router("/getVerifyImg", &controllers.LoginController{}, "*:GetVerifyImg")
web.Router("/update/password", &controllers.UpdateController{}, "*:UpdatePassword")
web.Router("/freeze/operator", &controllers.UpdateController{}, "*:FreezeOperator")
web.Router("/freeze/merchant", &controllers.UpdateController{}, "*:UpdateMerchantStatus")
web.Router("/unfreeze/operator", &controllers.UpdateController{}, "*:UnfreezeOperator")
web.Router("/unfreeze/merchant", &controllers.UpdateController{}, "*:UpdateMerchantStatus")
web.Router("/edit/operator", &controllers.UpdateController{}, "*:EditOperator")
web.Router("/add/menu", &controllers.AddController{}, "*:AddMenu")
web.Router("/add/secondMenu", &controllers.AddController{}, "*:AddSecondMenu")
web.Router("/add/power", &controllers.AddController{}, "*:AddPower")
web.Router("/add/role", &controllers.AddController{}, "*:AddRole")
web.Router("/add/operator", &controllers.AddController{}, "*:AddOperator")
web.Router("/add/bankCard", &controllers.AddController{}, "*:AddBankCard")
web.Router("/add/road", &controllers.AddController{}, "*:AddRoad")
web.Router("/add/roadPool", &controllers.AddController{}, "*:AddRoadPool")
web.Router("/add/merchant", &controllers.AddController{}, "*:AddMerchant")
web.Router("/add/agent", &controllers.AddController{}, "*:AddAgent")
web.Router("/add/merchant/deploy", &controllers.AddController{}, "*:AddMerchantDeploy")
web.Router("/add/merchant/payType", &controllers.AddController{}, "*:AddMerchantPayType")
web.Router("/add/payfor", &controllers.AddController{}, "*:AddPayFor")
web.Router("/add/self/payfor", &controllers.AddController{}, "*:AddSelfPayFor")
web.Router("/get/menu", &controllers.GetController{}, "*:GetMenu")
web.Router("/get/secondMenu", &controllers.GetController{}, "*:GetSecondMenu")
web.Router("/get/secondMenus", &controllers.GetController{}, "*:GetSecondMenus")
web.Router("/get/oneMenu", &controllers.GetController{}, "*:GetOneMenu")
web.Router("/get/firstMenu", &controllers.GetController{}, "*:GetFirstMenu")
web.Router("/get/powerItem", &controllers.GetController{}, "*:GetPowerItem")
web.Router("/get/role", &controllers.GetController{}, "*:GetRole")
web.Router("/get/allRole", &controllers.GetController{}, "*:GetAllRole")
web.Router("/get/deployTree", &controllers.GetController{}, "*:GetDeployTree")
web.Router("/get/operator", &controllers.GetController{}, "*:GetOperator")
web.Router("/get/oneOperator", &controllers.GetController{}, "*:GetOneOperator")
web.Router("/get/editOperator", &controllers.GetController{}, "*:GetEditOperator")
web.Router("/get/bankCard", &controllers.GetController{}, "*:GetBankCard")
web.Router("/get/oneBankCard", &controllers.GetController{}, "*:GetOneBankCard")
web.Router("/get/road", &controllers.GetController{}, "*:GetRoad")
web.Router("/get/oneRoad", &controllers.GetController{}, "*:GetOneRoad")
web.Router("/get/all/road", &controllers.GetController{}, "*:GetAllRoad")
web.Router("/get/roadPool", &controllers.GetController{}, "*:GetRoadPool")
web.Router("/get/all/roll/pool", &controllers.GetController{}, "*:GetAllRollPool")
web.Router("/get/merchant", &controllers.GetController{}, "*:GetMerchant")
web.Router("/get/all/merchant", &controllers.GetController{}, "*:GetAllMerchant")
web.Router("/get/one/merchant", &controllers.GetController{}, "*:GetOneMerchant")
web.Router("/get/one/merchant/deploy", &controllers.GetController{}, "*:GetOneMerchantDeploy")
web.Router("/get/all/account", &controllers.GetController{}, "*:GetAllAccount")
web.Router("/get/account", &controllers.GetController{}, "*:GetAccount")
web.Router("/get/one/account", &controllers.GetController{}, "*:GetOneAccount")
web.Router("/get/account/history", &controllers.GetController{}, "*:GetAccountHistory")
web.Router("/get/agent", &controllers.GetController{}, "*:GetAgent")
web.Router("/get/all/agent", &controllers.GetController{}, "*:GetAllAgent")
web.Router("/get/product", &controllers.GetController{}, "*:GetProduct")
web.Router("/get/order", &controllers.GetController{}, "*:GetOrder")
web.Router("/get/order/export", &controllers.GetController{}, "*:GetOrderExport")
web.Router("/get/orderSummary", &controllers.GetController{}, "*:GetOrderSummary")
web.Router("/get/one/order", &controllers.GetController{}, "*:GetOneOrder")
web.Router("/get/orderProfit", &controllers.GetController{}, "*:GetOrderProfit")
web.Router("/get/balance", &controllers.GetController{}, "*:GetBalance")
web.Router("/get/notify/bankOrderId/list", &controllers.GetController{}, "*:GetNotifyBankOrderIdList")
web.Router("/get/agent/to/merchant", &controllers.GetController{}, "*:GetAgentToMerchant")
web.Router("/get/profit", &controllers.GetController{}, "*:GetProfit")
web.Router("/save/power", &controllers.AddController{}, "*:SavePower")
web.Router("/save/roadUid", &controllers.AddController{}, "*:SaveRoadUid")
web.Router("/up/menu", &controllers.UpdateController{}, "*:UpMenu")
web.Router("/down/menu", &controllers.UpdateController{}, "*:DownMenu")
web.Router("/up/secondMenu", &controllers.UpdateController{}, "*:UpSecondMenu")
web.Router("/down/secondMenu", &controllers.UpdateController{}, "*:DownSecondMenu")
web.Router("/update/roadStatus", &controllers.UpdateController{}, "*:UpdateRoadStatus")
web.Router("/update/account/status", &controllers.UpdateController{}, "*:UpdateAccountStatus")
web.Router("/update/agent/status", &controllers.UpdateController{}, "*:UpdateAgentStatus")
web.Router("/update/order/status", &controllers.UpdateController{}, "*:UpdateOrderStatus")
web.Router("/update/order/schedule", &controllers.UpdateController{}, "*:UpdateOrderSchedule")
web.Router("/update/order/block", &controllers.UpdateController{}, "*:UpdateOrderBlockStatus")
web.Router("/update/merchant/newPassword", &controllers.UpdateController{}, "*:UpdateMerchantPassword")
web.Router("/account/operator", &controllers.UpdateController{}, "*:OperatorAccount")
web.Router("/delete/menu", &controllers.DeleteController{}, "*:DeleteMenu")
web.Router("/delete/secondMenu", &controllers.DeleteController{}, "*:DeleteSecondMenu")
web.Router("/delete/powerItem", &controllers.DeleteController{}, "*:DeletePowerItem")
web.Router("/delete/role", &controllers.DeleteController{}, "*:DeleteRole")
web.Router("/delete/operator", &controllers.DeleteController{}, "*:DeleteOperator")
web.Router("/delete/bankCardRecord", &controllers.DeleteController{}, "*:DeleteBankCardRecord")
web.Router("/delete/road", &controllers.DeleteController{}, "*:DeleteRoad")
web.Router("/delete/roadPool", &controllers.DeleteController{}, "*:DeleteRoadPool")
web.Router("/delete/merchant", &controllers.DeleteController{}, "*:DeleteMerchant")
web.Router("/delete/account", &controllers.DeleteController{}, "*:DeleteAccount")
web.Router("/delete/agent", &controllers.DeleteController{}, "*:DeleteAgent")
web.Router("/delete/agent/merchant/relation", &controllers.DeleteController{}, "*:DeleteAgentRelation")
web.Router("/reset/agent/password", &controllers.UpdateController{}, "*:ResetAgentPassword")
web.Router("/supplier/order/query", &controllers.SupplierQuery{}, "*:SupplierOrderQuery")
web.Router("/supplier/payfor/query", &controllers.SupplierQuery{}, "*:SupplierPayForQuery")
web.Router("/choose/payfor/road", &controllers.UpdateController{}, "*:ChoosePayForRoad")
web.Router("/result/payfor", &controllers.UpdateController{}, "*:ResultPayFor")
web.Router("/send/notify", &controllers.SendNotify{}, "*:SendNotifyToMerchant")
web.Router("/self/send/notify", &controllers.SendNotify{}, "*:SelfSendNotify")
web.Router("/user/genTotp", &controllers.TotpQuery{}, "*:GenTotp")
web.Router("/user/verifyTotpAccess", &controllers.TotpQuery{}, "*:VerifyTotpAccess")
web.Router("/user/saveTotp", &controllers.TotpQuery{}, "*:SaveTotp")
}