summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/yaegashi/msgraph.go/msauth/client_credentials_grant.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2019-12-26 23:12:28 +0100
committerWim <wim@42.be>2020-03-01 22:19:33 +0100
commit795a8705c3fdc5bf55e83d382e7d3ff233896a0b (patch)
tree46ac43e487102de7ea21a823a7a7902ae9493f88 /vendor/github.com/yaegashi/msgraph.go/msauth/client_credentials_grant.go
parent3af0dc3b3a5bfaffe37770c437427f1e99402405 (diff)
downloadmatterbridge-msglm-795a8705c3fdc5bf55e83d382e7d3ff233896a0b.tar.gz
matterbridge-msglm-795a8705c3fdc5bf55e83d382e7d3ff233896a0b.tar.bz2
matterbridge-msglm-795a8705c3fdc5bf55e83d382e7d3ff233896a0b.zip
Add initial Microsoft Teams support
Documentation on https://github.com/42wim/matterbridge/wiki/MS-Teams-setup
Diffstat (limited to 'vendor/github.com/yaegashi/msgraph.go/msauth/client_credentials_grant.go')
-rw-r--r--vendor/github.com/yaegashi/msgraph.go/msauth/client_credentials_grant.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/vendor/github.com/yaegashi/msgraph.go/msauth/client_credentials_grant.go b/vendor/github.com/yaegashi/msgraph.go/msauth/client_credentials_grant.go
new file mode 100644
index 00000000..bc50883d
--- /dev/null
+++ b/vendor/github.com/yaegashi/msgraph.go/msauth/client_credentials_grant.go
@@ -0,0 +1,27 @@
+package msauth
+
+import (
+ "context"
+
+ "golang.org/x/oauth2"
+ "golang.org/x/oauth2/clientcredentials"
+ "golang.org/x/oauth2/microsoft"
+)
+
+// ClientCredentialsGrant performs OAuth 2.0 client credentials grant and returns auto-refreshing TokenSource
+func (m *Manager) ClientCredentialsGrant(ctx context.Context, tenantID, clientID, clientSecret string, scopes []string) (oauth2.TokenSource, error) {
+ config := &clientcredentials.Config{
+ ClientID: clientID,
+ ClientSecret: clientSecret,
+ TokenURL: microsoft.AzureADEndpoint(tenantID).TokenURL,
+ Scopes: scopes,
+ AuthStyle: oauth2.AuthStyleInParams,
+ }
+ var err error
+ ts := config.TokenSource(ctx)
+ _, err = ts.Token()
+ if err != nil {
+ return nil, err
+ }
+ return ts, nil
+}