mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-04 00:42:24 -06:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package oauth2
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"net/http"
 | 
						|
	"time"
 | 
						|
)
 | 
						|
 | 
						|
// TokenGenerateRequest provide to generate the token request parameters
 | 
						|
type TokenGenerateRequest struct {
 | 
						|
	ClientID            string
 | 
						|
	ClientSecret        string
 | 
						|
	UserID              string
 | 
						|
	RedirectURI         string
 | 
						|
	Scope               string
 | 
						|
	Code                string
 | 
						|
	CodeChallenge       string
 | 
						|
	CodeChallengeMethod CodeChallengeMethod
 | 
						|
	Refresh             string
 | 
						|
	CodeVerifier        string
 | 
						|
	AccessTokenExp      time.Duration
 | 
						|
	Request             *http.Request
 | 
						|
}
 | 
						|
 | 
						|
// Manager authorization management interface
 | 
						|
type Manager interface {
 | 
						|
	// get the client information
 | 
						|
	GetClient(ctx context.Context, clientID string) (cli ClientInfo, err error)
 | 
						|
 | 
						|
	// generate the authorization token(code)
 | 
						|
	GenerateAuthToken(ctx context.Context, rt ResponseType, tgr *TokenGenerateRequest) (authToken TokenInfo, err error)
 | 
						|
 | 
						|
	// generate the access token
 | 
						|
	GenerateAccessToken(ctx context.Context, rt GrantType, tgr *TokenGenerateRequest) (accessToken TokenInfo, err error)
 | 
						|
 | 
						|
	// refreshing an access token
 | 
						|
	RefreshAccessToken(ctx context.Context, tgr *TokenGenerateRequest) (accessToken TokenInfo, err error)
 | 
						|
 | 
						|
	// use the access token to delete the token information
 | 
						|
	RemoveAccessToken(ctx context.Context, access string) (err error)
 | 
						|
 | 
						|
	// use the refresh token to delete the token information
 | 
						|
	RemoveRefreshToken(ctx context.Context, refresh string) (err error)
 | 
						|
 | 
						|
	// according to the access token for corresponding token information
 | 
						|
	LoadAccessToken(ctx context.Context, access string) (ti TokenInfo, err error)
 | 
						|
 | 
						|
	// according to the refresh token for corresponding token information
 | 
						|
	LoadRefreshToken(ctx context.Context, refresh string) (ti TokenInfo, err error)
 | 
						|
}
 |