diff options
Diffstat (limited to 'internal/oauth')
| -rw-r--r-- | internal/oauth/clientstore.go | 1 | ||||
| -rw-r--r-- | internal/oauth/server.go | 7 | ||||
| -rw-r--r-- | internal/oauth/tokenstore.go | 16 | 
3 files changed, 15 insertions, 9 deletions
| diff --git a/internal/oauth/clientstore.go b/internal/oauth/clientstore.go index e062383ce..4e678891a 100644 --- a/internal/oauth/clientstore.go +++ b/internal/oauth/clientstore.go @@ -64,6 +64,7 @@ func (cs *clientStore) Delete(ctx context.Context, id string) error {  	return cs.db.DeleteByID(id, poc)  } +// Client is a handy little wrapper for typical oauth client details  type Client struct {  	ID     string  	Secret string diff --git a/internal/oauth/server.go b/internal/oauth/server.go index 538288922..1ddf18b03 100644 --- a/internal/oauth/server.go +++ b/internal/oauth/server.go @@ -46,7 +46,7 @@ const (  	// of a User who has successfully passed Bearer token authorization.  	// The interface returned from grabbing this key should be parsed as a *gtsmodel.Account  	SessionAuthorizedAccount = "authorized_account" -	// SessionAuthorizedAccount is the key set in the gin context for the Application +	// SessionAuthorizedApplication is the key set in the gin context for the Application  	// of a Client who has successfully passed Bearer token authorization.  	// The interface returned from grabbing this key should be parsed as a *gtsmodel.Application  	SessionAuthorizedApplication = "authorized_app" @@ -66,6 +66,10 @@ type s struct {  	log    *logrus.Logger  } +// Authed wraps an authorized token, application, user, and account. +// It is used in the functions GetAuthed and MustAuth. +// Because the user might *not* be authed, any of the fields in this struct +// might be nil, so make sure to check that when you're using this struct anywhere.  type Authed struct {  	Token       oauth2.TokenInfo  	Application *gtsmodel.Application @@ -208,6 +212,7 @@ func (s *s) GenerateUserAccessToken(ti oauth2.TokenInfo, clientSecret string, us  	return accessToken, nil  } +// New returns a new oauth server that implements the Server interface  func New(database db.DB, log *logrus.Logger) Server {  	ts := newTokenStore(context.Background(), database, log)  	cs := newClientStore(database) diff --git a/internal/oauth/tokenstore.go b/internal/oauth/tokenstore.go index 14caa6581..539890a03 100644 --- a/internal/oauth/tokenstore.go +++ b/internal/oauth/tokenstore.go @@ -98,7 +98,7 @@ func (pts *tokenStore) Create(ctx context.Context, info oauth2.TokenInfo) error  	if !ok {  		return errors.New("info param was not a models.Token")  	} -	if err := pts.db.Put(OAuthTokenToPGToken(t)); err != nil { +	if err := pts.db.Put(TokenToPGToken(t)); err != nil {  		return fmt.Errorf("error in tokenstore create: %s", err)  	}  	return nil @@ -130,7 +130,7 @@ func (pts *tokenStore) GetByCode(ctx context.Context, code string) (oauth2.Token  	if err := pts.db.GetWhere("code", code, pgt); err != nil {  		return nil, err  	} -	return PGTokenToOauthToken(pgt), nil +	return TokenToOauthToken(pgt), nil  }  // GetByAccess selects a token from the DB based on the Access field @@ -144,7 +144,7 @@ func (pts *tokenStore) GetByAccess(ctx context.Context, access string) (oauth2.T  	if err := pts.db.GetWhere("access", access, pgt); err != nil {  		return nil, err  	} -	return PGTokenToOauthToken(pgt), nil +	return TokenToOauthToken(pgt), nil  }  // GetByRefresh selects a token from the DB based on the Refresh field @@ -158,7 +158,7 @@ func (pts *tokenStore) GetByRefresh(ctx context.Context, refresh string) (oauth2  	if err := pts.db.GetWhere("refresh", refresh, pgt); err != nil {  		return nil, err  	} -	return PGTokenToOauthToken(pgt), nil +	return TokenToOauthToken(pgt), nil  }  /* @@ -194,8 +194,8 @@ type Token struct {  	RefreshExpiresAt    time.Time `pg:"type:timestamp"`  } -// OAuthTokenToPGToken is a lil util function that takes a gotosocial token and gives back a token for inserting into postgres -func OAuthTokenToPGToken(tkn *models.Token) *Token { +// TokenToPGToken is a lil util function that takes a gotosocial token and gives back a token for inserting into postgres +func TokenToPGToken(tkn *models.Token) *Token {  	now := time.Now()  	// For the following, we want to make sure we're not adding a time.Now() to an *empty* ExpiresIn, otherwise that's @@ -236,8 +236,8 @@ func OAuthTokenToPGToken(tkn *models.Token) *Token {  	}  } -// PGTokenToOauthToken is a lil util function that takes a postgres token and gives back a gotosocial token -func PGTokenToOauthToken(pgt *Token) *models.Token { +// TokenToOauthToken is a lil util function that takes a postgres token and gives back a gotosocial token +func TokenToOauthToken(pgt *Token) *models.Token {  	now := time.Now()  	return &models.Token{ | 
