|
|
@@ -5,30 +5,36 @@ import (
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
|
"github.com/runningwater/gohub/app/http/controllers/api/v1/auth"
|
|
|
+ "github.com/runningwater/gohub/app/http/middlewares"
|
|
|
)
|
|
|
|
|
|
// RegisterAPIRoutes 注册路由
|
|
|
func RegisterAPIRoutes(router *gin.Engine) {
|
|
|
// v1 路由组,所有 v1 版本的路由都放在这里
|
|
|
v1 := router.Group("/v1")
|
|
|
+ // 全局限流中间件:每小时限流。这里是所有 API (根据 IP)请求加起来。
|
|
|
+ // 作为参考 Github API 每小时最多 60 个请求(根据 IP)。
|
|
|
+ // 测试时,可以调高一点。
|
|
|
+ v1.Use(middlewares.LimitIP("200-H"))
|
|
|
+
|
|
|
{
|
|
|
authGroup := v1.Group("/auth")
|
|
|
{
|
|
|
suc := new(auth.SignupController)
|
|
|
vcc := new(auth.VerifyCodeController)
|
|
|
// 注册手机号是否已存在
|
|
|
- authGroup.POST("/signup/phone/exist", suc.IsPhoneExist)
|
|
|
+ authGroup.POST("/signup/phone/exist", middlewares.GuestJWT(), middlewares.LimitIP("60-H"), suc.IsPhoneExist)
|
|
|
// 注册邮箱是否已存在
|
|
|
- authGroup.POST("/signup/email/exist", suc.IsEmailExist)
|
|
|
+ authGroup.POST("/signup/email/exist", middlewares.GuestJWT(), middlewares.LimitIP("60-H"), suc.IsEmailExist)
|
|
|
// 注册用户
|
|
|
authGroup.POST("/signup/using-phone", suc.SignupUsingPhone)
|
|
|
authGroup.POST("/signup/using-email", suc.SignupUsingEmail)
|
|
|
// 显示图片验证码
|
|
|
- authGroup.POST("/verify_code/captcha", vcc.ShowCaptcha)
|
|
|
+ authGroup.POST("/verify_code/captcha", middlewares.LimitIP("50-H"), vcc.ShowCaptcha)
|
|
|
// 发送手机验证码
|
|
|
- authGroup.POST("/verify_code/phone", vcc.SendUsingPhone)
|
|
|
+ authGroup.POST("/verify_code/phone", middlewares.LimitIP("20-H"), vcc.SendUsingPhone)
|
|
|
// 发送邮箱验证码
|
|
|
- authGroup.POST("/verify_code/email", vcc.SendUsingEmail)
|
|
|
+ authGroup.POST("/verify_code/email", middlewares.LimitIP("20-H"), vcc.SendUsingEmail)
|
|
|
|
|
|
logc := new(auth.LoginController)
|
|
|
// 手机号登录
|