Files

62 lines
2.0 KiB
Go
Raw Permalink Normal View History

2026-07-03 15:58:29 +08:00
package dto
// SSOAuthURLRequest 获取SSO授权URL请求
type SSOAuthURLRequest struct {
ProviderID uint64 `json:"provider_id" binding:"required"` // SSO提供商ID
State string `json:"state"` // 防CSRF状态码
}
// SSOCallbackRequest SSO回调请求
type SSOCallbackRequest struct {
ProviderID uint64 `json:"provider_id" binding:"required"` // SSO提供商ID
Code string `json:"code" binding:"required"` // 授权码/CAS票据
}
// SSOProviderVO SSO提供商视图对象(登录页展示)
type SSOProviderVO struct {
ID uint64 `json:"id"`
Name string `json:"name"`
DisplayName string `json:"display_name"`
Icon string `json:"icon"`
Type string `json:"type"`
}
// SSOProviderCreateRequest 创建SSO提供商请求
type SSOProviderCreateRequest struct {
Name string `json:"name" binding:"required"`
Type string `json:"type" binding:"required,oneof=oauth2 oidc cas ldap"`
DisplayName string `json:"display_name" binding:"required"`
Icon string `json:"icon"`
Config SSOConfigDTO `json:"config" binding:"required"`
AutoCreate int8 `json:"auto_create"`
DefaultRole string `json:"default_role"`
}
// SSOConfigDTO SSO配置DTO
type SSOConfigDTO struct {
// OAuth2/OIDC
ClientID string `json:"client_id"`
ClientSecret string `json:"client_secret"`
AuthURL string `json:"auth_url"`
TokenURL string `json:"token_url"`
UserInfoURL string `json:"user_info_url"`
RedirectURI string `json:"redirect_uri"`
Scopes string `json:"scopes"`
// CAS
CasServerURL string `json:"cas_server_url"`
// LDAP
LDAPServer string `json:"ldap_server"`
LDAPPort int `json:"ldap_port"`
LDAPBaseDN string `json:"ldap_base_dn"`
LDAPBindUser string `json:"ldap_bind_user"`
LDAPBindPass string `json:"ldap_bind_pass"`
LDAPFilter string `json:"ldap_filter"`
// 字段映射
MappingUsername string `json:"mapping_username"`
MappingEmail string `json:"mapping_email"`
MappingNickname string `json:"mapping_nickname"`
}