nezha/model/oauth2config.go

34 lines
1.0 KiB
Go
Raw Normal View History

2024-12-28 10:50:59 -05:00
package model
import (
"golang.org/x/oauth2"
)
type Oauth2Config struct {
ClientID string `mapstructure:"client_id" json:"client_id,omitempty"`
ClientSecret string `mapstructure:"client_secret" json:"client_secret,omitempty"`
Endpoint Oauth2Endpoint `mapstructure:"endpoint" json:"endpoint,omitempty"`
Scopes []string `mapstructure:"scopes" json:"scopes,omitempty"`
UserInfoURL string `mapstructure:"user_info_url" json:"user_info_url,omitempty"`
UserIDPath string `mapstructure:"user_id_path" json:"user_id_path,omitempty"`
}
type Oauth2Endpoint struct {
AuthURL string `mapstructure:"auth_url" json:"auth_url,omitempty"`
TokenURL string `mapstructure:"token_url" json:"token_url,omitempty"`
}
func (c *Oauth2Config) Setup(redirectURL string) *oauth2.Config {
return &oauth2.Config{
ClientID: c.ClientID,
ClientSecret: c.ClientSecret,
Endpoint: oauth2.Endpoint{
AuthURL: c.Endpoint.AuthURL,
TokenURL: c.Endpoint.TokenURL,
},
RedirectURL: redirectURL,
Scopes: c.Scopes,
}
}