github.com/jxgolibs/go-oauth2-server@v1.0.1/oauth/grant_type_client_credentials.go (about)

     1  package oauth
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/RichardKnop/go-oauth2-server/models"
     7  	"github.com/RichardKnop/go-oauth2-server/oauth/tokentypes"
     8  )
     9  
    10  func (s *Service) clientCredentialsGrant(r *http.Request, client *models.OauthClient) (*AccessTokenResponse, error) {
    11  	// Get the scope string
    12  	scope, err := s.GetScope(r.Form.Get("scope"))
    13  	if err != nil {
    14  		return nil, err
    15  	}
    16  
    17  	// Create a new access token
    18  	accessToken, err := s.GrantAccessToken(
    19  		client,
    20  		nil, // empty user
    21  		s.cnf.Oauth.AccessTokenLifetime, // expires in
    22  		scope,
    23  	)
    24  	if err != nil {
    25  		return nil, err
    26  	}
    27  
    28  	// Create response
    29  	accessTokenResponse, err := NewAccessTokenResponse(
    30  		accessToken,
    31  		nil, // refresh token
    32  		s.cnf.Oauth.AccessTokenLifetime,
    33  		tokentypes.Bearer,
    34  	)
    35  	if err != nil {
    36  		return nil, err
    37  	}
    38  
    39  	return accessTokenResponse, nil
    40  }