mirror of https://github.com/veypi/OneAuth.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.5 KiB
Go
40 lines
1.5 KiB
Go
|
1 week ago
|
//
|
||
|
|
// Copyright (C) 2024 veypi <i@veypi.com>
|
||
|
|
// 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)
|
||
|
|
}
|