48 lines
2.7 KiB
Go
48 lines
2.7 KiB
Go
// Package auth 统一认证中心(UAC)路由:api.yunzer.cn/auth
|
||
//
|
||
// 重要:该路由组必须在 router.go 的所有运行模式下都注册
|
||
// (platform / backend / index / api / app / all),
|
||
// 否则对应模式下认证中心不可用。
|
||
package auth
|
||
|
||
import (
|
||
authctl "server/controllers/auth"
|
||
|
||
beego "github.com/beego/beego/v2/server/web"
|
||
)
|
||
|
||
// Register 注册认证中心路由
|
||
func Register() {
|
||
// ---- OIDC 标准端点 ----
|
||
beego.Router("/auth/.well-known/openid-configuration", &authctl.AuthOidcController{}, "get:Discovery")
|
||
beego.Router("/auth/jwks.json", &authctl.AuthOidcController{}, "get:JWKS")
|
||
beego.Router("/auth/authorize", &authctl.AuthOidcController{}, "get:Authorize")
|
||
beego.Router("/auth/token", &authctl.AuthOidcController{}, "post:Token")
|
||
beego.Router("/auth/userinfo", &authctl.AuthOidcController{}, "get:UserInfo;post:UserInfo")
|
||
beego.Router("/auth/introspect", &authctl.AuthOidcController{}, "post:Introspect")
|
||
beego.Router("/auth/revoke", &authctl.AuthOidcController{}, "post:Revoke")
|
||
|
||
// ---- 第三方登录(微信/钉钉/飞书/QQ/GitHub/Google) ----
|
||
beego.Router("/auth/third/list", &authctl.AuthThirdController{}, "get:List")
|
||
beego.Router("/auth/third/:provider/authorize", &authctl.AuthThirdController{}, "get:Authorize")
|
||
beego.Router("/auth/third/:provider/callback", &authctl.AuthThirdController{}, "get:Callback")
|
||
beego.Router("/auth/third/bind", &authctl.AuthThirdController{}, "post:Bind")
|
||
beego.Router("/auth/third/unbind", &authctl.AuthThirdController{}, "post:Unbind")
|
||
beego.Router("/auth/third/bound", &authctl.AuthThirdController{}, "get:BoundList")
|
||
// 自助页面(浏览器访问)
|
||
beego.Router("/auth/bind", &authctl.AuthThirdController{}, "get:BindPage")
|
||
beego.Router("/auth/devices", &authctl.AuthSessionController{}, "get:DevicesPage")
|
||
beego.Router("/auth/devices/kick", &authctl.AuthSessionController{}, "get:KickPage")
|
||
beego.Router("/auth/third/:provider/unbind", &authctl.AuthThirdController{}, "get:UnbindPage")
|
||
|
||
// ---- 登录与会话 ----
|
||
// 注意:beego 同一路径重复 Router 会覆盖,故 /auth/logout 只注册一次
|
||
beego.Router("/auth/login", &authctl.AuthLoginController{}, "get:LoginPage;post:LoginSubmit")
|
||
beego.Router("/auth/logout", &authctl.AuthLoginController{}, "get:LogoutPage;post:LogoutAction")
|
||
beego.Router("/auth/tenants", &authctl.AuthLoginController{}, "get:Tenants")
|
||
beego.Router("/auth/switch-tenant", &authctl.AuthLoginController{}, "post:SwitchTenant")
|
||
beego.Router("/auth/sessions", &authctl.AuthLoginController{}, "get:Sessions")
|
||
beego.Router("/auth/sessions/kick", &authctl.AuthLoginController{}, "post:KickSession")
|
||
beego.Router("/auth/verify-config", &authctl.AuthLoginController{}, "get:VerifyConfig")
|
||
}
|