mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-03 12:30:19 +08:00
Change provider interface.
This commit is contained in:
@ -20,18 +20,25 @@ import (
|
||||
"golang.org/x/oauth2"
|
||||
)
|
||||
|
||||
type IdProvider interface {
|
||||
GetConfig() *oauth2.Config
|
||||
GetUserInfo(httpClient *http.Client, token *oauth2.Token) (string, string, string, error)
|
||||
type UserInfo struct {
|
||||
Username string
|
||||
Email string
|
||||
AvatarUrl string
|
||||
}
|
||||
|
||||
func GetIdProvider(providerType string, clientId string) IdProvider {
|
||||
type IdProvider interface {
|
||||
SetHttpClient(client *http.Client)
|
||||
GetToken(code string) (*oauth2.Token, error)
|
||||
GetUserInfo(token *oauth2.Token) (*UserInfo, error)
|
||||
}
|
||||
|
||||
func GetIdProvider(providerType string, clientId string, clientSecret string, redirectUrl string) IdProvider {
|
||||
if providerType == "github" {
|
||||
return &GithubIdProvider{}
|
||||
return NewGithubIdProvider(clientId, clientSecret, redirectUrl)
|
||||
} else if providerType == "google" {
|
||||
return &GoogleIdProvider{}
|
||||
return NewGoogleIdProvider(clientId, clientSecret, redirectUrl)
|
||||
} else if providerType == "qq" {
|
||||
return &QqIdProvider{ClientId: clientId}
|
||||
return NewQqIdProvider(clientId, clientSecret, redirectUrl)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
Reference in New Issue
Block a user