github.com/resonatecoop/id@v1.1.0-43/oauth/grant_type_client_credentials.go (about) 1 package oauth 2 3 import ( 4 "net/http" 5 6 "github.com/resonatecoop/id/oauth/tokentypes" 7 "github.com/resonatecoop/user-api/model" 8 ) 9 10 func (s *Service) clientCredentialsGrant(r *http.Request, client *model.Client) (*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 }