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.
synctv/internal/provider/provider.go

30 lines
551 B
Go

package provider
import (
"context"
"golang.org/x/oauth2"
)
type OAuth2Provider string
type UserInfo struct {
Username string
ProviderUserID uint
}
type Oauth2Option struct {
ClientID string
ClientSecret string
RedirectURL string
}
type ProviderInterface interface {
Init(Oauth2Option)
Provider() OAuth2Provider
NewAuthURL(string) string
GetToken(context.Context, string) (*oauth2.Token, error)
RefreshToken(context.Context, string) (*oauth2.Token, error)
GetUserInfo(context.Context, *oauth2.Token) (*UserInfo, error)
}