// // Copyright (C) 2024 veypi // 2025-03-04 16:08:06 // Distributed under terms of the MIT license. // package auth import ( "github.com/veypi/vigo" ) var Router = vigo.NewRouter() func init() { // === 公开路由(跳过父级认证中间件)=== // 登录/注册等接口不需要认证 Router.Post("/login", "用户登录", vigo.SkipBefore, login) Router.Post("/register", "用户注册", vigo.SkipBefore, register) Router.Post("/refresh", "刷新Token", vigo.SkipBefore, refresh) Router.Post("/logout", "用户登出", logout) // 第三方登录(公开端点) Router.Get("/providers", "支持的登录提供商", vigo.SkipBefore, listProviders) Router.Get("/authorize/thirdparty", "第三方登录授权", vigo.SkipBefore, authorizeThirdParty) Router.Get("/callback/{provider}", "第三方登录回调", vigo.SkipBefore, callbackThirdParty) Router.Post("/bind", "绑定第三方账号", vigo.SkipBefore, bindThirdParty) Router.Post("/bind-register", "绑定并注册", vigo.SkipBefore, bindWithRegister) // === 当前用户(需要认证)=== meRouter := Router.SubRouter("/me") meRouter.Get("/", "获取当前用户信息", me) meRouter.Patch("/", "更新当前用户信息", updateMe) meRouter.Post("/change-password", "修改密码", changePassword) // 第三方账号绑定 meRouter.Get("/bindings", "第三方账号绑定列表", listBindings) meRouter.Post("/bindings", "绑定第三方账号", authorizeThirdParty) meRouter.Delete("/bindings/{provider}", "解绑第三方账号", unbindThirdParty) }