mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 15:12:26 -05:00 
			
		
		
		
	
		
			
	
	
		
			51 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			51 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) | ||
|  | } |