@@ -107,6 +107,18 @@ type RefreshTokenResponse struct {
107107// ID Token decryption is not (yet) supported
108108// UserInfo decryption is not (yet) supported
109109func New (clientKey , secret , callbackURL , openIDAutoDiscoveryURL string , scopes ... string ) (* Provider , error ) {
110+ return NewNamed ("" , clientKey , secret , callbackURL , openIDAutoDiscoveryURL , scopes ... )
111+ }
112+
113+ // NewNamed is similar to New(...) but can be used to set a custom name for the
114+ // provider in order to use multiple OIDC providers
115+ func NewNamed (name , clientKey , secret , callbackURL , openIDAutoDiscoveryURL string , scopes ... string ) (* Provider , error ) {
116+ switch len (name ) {
117+ case 0 :
118+ name = "openid-connect"
119+ default :
120+ name = fmt .Sprintf ("%s-oidc" , strings .ToLower (name ))
121+ }
110122 p := & Provider {
111123 ClientKey : clientKey ,
112124 Secret : secret ,
@@ -121,7 +133,7 @@ func New(clientKey, secret, callbackURL, openIDAutoDiscoveryURL string, scopes .
121133 LastNameClaims : []string {FamilyNameClaim },
122134 LocationClaims : []string {AddressClaim },
123135
124- providerName : "openid-connect" ,
136+ providerName : name ,
125137 }
126138
127139 openIDConfig , err := getOpenIDConfig (p , openIDAutoDiscoveryURL )
0 commit comments