Dynamic auth

Resolving a strategy dynamically in runtime
When you deal with multiple SharePoint environments with different strategies and concidering same code automatically resolving a strategy use the dynamic auth helper.
With the dynamic auth you'd need extending a private.json content with strategy property, containing a name of a strategy. E.g.:
"strtegy": "addin",
"siteUrl": "",
"clientId": "...",
"clientSecret": "..."
Available strategy names are: azurecert, azurecreds, device, addin, adfs, fba, ntlm, saml, tmg.


package main
import (
func main() {
config := flag.String("config", "./config/private.json", "Config path")
authCnfg, err := auth.NewAuthFromFile(*config)
if err != nil {
log.Fatalf("unable to get config: %v", err)
// or
// authCnfg, _ := NewAuthFromFile(strategyName)
// _ = auth.ParseConfig(byteJsonCreds)
client := &gosip.SPClient{AuthCnfg: authCnfg}
sp := api.NewSP(client)
// ...
With a custom auth involved it can be extended like this.