You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudreve/routers/router.go

63 lines
1.0 KiB

5 years ago
package routers
import (
5 years ago
"cloudreve/middleware"
"cloudreve/pkg/conf"
"cloudreve/routers/controllers"
5 years ago
"github.com/gin-gonic/gin"
)
5 years ago
var r *gin.Engine
// SetupTestEngine 设置测试用gin.Engine
func SetupTestEngine(engine *gin.Engine) {
r = engine
}
5 years ago
// InitRouter 初始化路由
5 years ago
func InitRouter() *gin.Engine {
5 years ago
if r == nil {
r = gin.Default()
}
5 years ago
/*
*/
5 years ago
r.Use(middleware.Session(conf.SystemConfig.SessionSecret))
// 测试模式加加入Mock助手中间件
if gin.Mode() == gin.TestMode {
r.Use(middleware.MockHelper())
}
5 years ago
r.Use(middleware.CurrentUser())
5 years ago
/*
*/
5 years ago
v3 := r.Group("/Api/V3")
{
// 测试用路由
5 years ago
v3.GET("Ping", controllers.Ping)
// 用户登录
5 years ago
v3.POST("User/Session", controllers.UserLogin)
5 years ago
// 验证码
v3.GET("Captcha", controllers.Captcha)
5 years ago
5 years ago
// 需要登录保护的
auth := v3.Group("")
auth.Use(middleware.AuthRequired())
{
// 用户类
user := auth.Group("User")
{
// 当前登录用户信息
user.GET("Me", controllers.UserMe)
}
}
5 years ago
}
return r
}