You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
import(
"github.com/go-oauth2/oauth2/v4/manage""github.com/go-oauth2/oauth2/v4/server"
mongo "gopkg.in/go-oauth2/mongo.v3"
)
funcmain(){
manager:=manage.NewDefaultManager()
/* * only for a MongoDB replicaSet deployment * Using a replicaSet is recommended as it allows for MongoDB's native support for transactions **/// mongoConf := mongo.NewConfigReplicaSet(// "mongodb://localhost:27017,localhost:28017,localhost:29017/?replicaSet=myReplicaSet",// "oauth2",// )// set connectionTimeout(7s) and the requestsTimeout(5s) // is optionalstoreConfigs:=mongo.NewStoreConfig(7, 5)
/* * for a single mongoDB node * if the oauth2 service is deployed with more than one instance * each mongoConf should have unique serviceName **/mongoConf:=mongo.NewConfigNonReplicaSet(
"mongodb://127.0.0.1:27017",
"oauth2", // database name"admin", // username to authenticate with db"password", // password to authenticate with db"serviceName",
)
// use mongodb token storemanager.MapTokenStorage(
mongo.NewTokenStore(mongoConf, storeConfigs), // with timeout// mongo.NewTokenStore(mongoConf), // no timeout
)
clientStore:=mongo.NewClientStore(mongoConf, storeConfigs) // with timeout// clientStore := mongo.NewClientStore(mongoConf) // no timeoutmanager.MapClientStorage(clientStore)
// register a serviceclientStore.Create(&models.Client{
ID: idvar,
Secret: secretvar,
Domain: domainvar,
UserID: "frontend",
})
// register a second serviceclientStore.Create(&models.Client{
ID: idPreorder,
Secret: secretPreorder,
Domain: domainPreorder,
UserID: "prePost",
})
srv:=server.NewServer(server.NewConfig(), manager)
// ...
}