51 lines
1.7 KiB
Go
51 lines
1.7 KiB
Go
package controller
|
|
|
|
import (
|
|
"context"
|
|
|
|
"easygoadmin/api/v1"
|
|
"easygoadmin/internal/service"
|
|
)
|
|
|
|
// ============================== 认证控制器 ==============================
|
|
|
|
// CAuth 认证控制器
|
|
// 薄层控制器,参数解析、权限与日志切面由 router.Bind 统一处理
|
|
type CAuth struct{}
|
|
|
|
// Login 登录
|
|
// 校验用户名、密码及验证码,成功后签发访问令牌与刷新令牌
|
|
func (c *CAuth) Login(ctx context.Context, req *v1.LoginReq) (res *v1.LoginRes, err error) {
|
|
return service.Auth().Login(ctx, req)
|
|
}
|
|
|
|
// Logout 登出
|
|
// 将当前访问令牌加入黑名单,使其立即失效
|
|
func (c *CAuth) Logout(ctx context.Context, req *v1.LogoutReq) (res *v1.LogoutRes, err error) {
|
|
return service.Auth().Logout(ctx, req)
|
|
}
|
|
|
|
// Captcha 图形验证码
|
|
// 生成图形验证码并返回验证码标识与图片内容
|
|
func (c *CAuth) Captcha(ctx context.Context, req *v1.CaptchaReq) (res *v1.CaptchaRes, err error) {
|
|
return service.Auth().Captcha(ctx, req)
|
|
}
|
|
|
|
// Refresh 刷新令牌
|
|
// 支持 refresh_token 刷新与 password 密码模式两种授权方式
|
|
func (c *CAuth) Refresh(ctx context.Context, req *v1.RefreshReq) (res *v1.RefreshRes, err error) {
|
|
return service.Auth().Refresh(ctx, req)
|
|
}
|
|
|
|
// CheckToken 校验令牌
|
|
// 校验令牌有效性并返回用户ID
|
|
func (c *CAuth) CheckToken(ctx context.Context, req *v1.CheckTokenReq) (res *v1.CheckTokenRes, err error) {
|
|
return service.Auth().CheckToken(ctx, req)
|
|
}
|
|
|
|
// RemoveToken 撤销指定令牌
|
|
// 将指定令牌加入黑名单,实现踢下线
|
|
func (c *CAuth) RemoveToken(ctx context.Context, req *v1.RemoveTokenReq) (res *v1.RemoveTokenRes, err error) {
|
|
return service.Auth().RemoveToken(ctx, req)
|
|
}
|