mirror of
https://codeberg.org/superseriousbusiness/gotosocial.git
synced 2024-12-25 10:28:18 +03:00
98263a7de6
* start fixing up tests * fix up tests + automate with drone * fiddle with linting * messing about with drone.yml * some more fiddling * hmmm * add cache * add vendor directory * verbose * ci updates * update some little things * update sig
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)
|
|
}
|