# README

Credentials

back

To access Salesforce APIs, there needs to be authentication between the client and the org. go-sfdc uses OAuth 2.0 and this package provides the credentials needed to authenticate.

The user is able to use the Providers that are part of this package, or implement one of their own. This allows for extendability beyond what is currently supported.

Currently, this package supports grant type of password OAuth flow. The package may or may not be support other flows in the future.

Examples

The following are some example(s) of creating credentials to be used when opening a session.

Password

creds := credentials.PasswordCredentials{
	URL:          "https://login.salesforce.com",
	Username:     "[email protected]",
	Password:     "greatpassword",
	ClientID:     "asdfnapodfnavppe",
	ClientSecret: "12312573857105",
}

config := sfdc.Configuration{
	Credentials: credentials.NewPasswordCredentials(creds),
	Client:      salesforceHTTPClient,
	Version:     44,
}

JWT

// read the key file
privateKeyFile, err := os.Open("/path/to/server.key")
if err != nil {
    panic()
}
pemfileinfo, _ := privateKeyFile.Stat()
var size int64 = pemfileinfo.Size()
pembytes := make([]byte, size)
buffer := bufio.NewReader(privateKeyFile)
_, err = buffer.Read(pembytes)
pemData := []byte(pembytes)
privateKeyFile.Close() // close file
signKey, err := jwt.ParseRSAPrivateKeyFromPEM(pemData)

// prepare the credentials
jwtCreds := credentials.JwtCredentials{
    URL: "https://login.salesforce.com",
    ClientId: "glfeoeirjgouwehf",
    ClientUsername: "[email protected]",
    ClientKey: signKey,
}

config := sfdc.Configuration{
    Credentials: credentials.NewJWTCredentials(jwtCreds),
    Client:      &http.Client{},
    Version:     44,
}

# Functions

NewCredentials will create a credential with the custom provider.
NewJWTCredentials weill create a credntial with all required info about generating a JWT claims parameter.
NewPasswordCredentials will create a crendential with the password credentials.

# Constants

No description provided by the author

# Structs

Credentials is the structure that contains all of the information for creating a session.
No description provided by the author
PasswordCredentials is a structure for the OAuth credentials that are needed to authenticate with a Salesforce org.

# Interfaces

Provider is the interface that is able to provide the session creator with all of the valid information.