30 lines
625 B
Go
30 lines
625 B
Go
|
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
|
||
|
// See License.txt for license information.
|
||
|
|
||
|
package einterfaces
|
||
|
|
||
|
import (
|
||
|
"github.com/mattermost/platform/model"
|
||
|
"io"
|
||
|
)
|
||
|
|
||
|
type OauthProvider interface {
|
||
|
GetIdentifier() string
|
||
|
GetUserFromJson(data io.Reader) *model.User
|
||
|
GetAuthDataFromJson(data io.Reader) string
|
||
|
}
|
||
|
|
||
|
var oauthProviders = make(map[string]OauthProvider)
|
||
|
|
||
|
func RegisterOauthProvider(name string, newProvider OauthProvider) {
|
||
|
oauthProviders[name] = newProvider
|
||
|
}
|
||
|
|
||
|
func GetOauthProvider(name string) OauthProvider {
|
||
|
provider, ok := oauthProviders[name]
|
||
|
if ok {
|
||
|
return provider
|
||
|
}
|
||
|
return nil
|
||
|
}
|