func NewClientStoreWithSession(session *mgo.Session, dbName string, ccfgs ...*ClientConfig) *ClientStore {
	cs := &ClientStore{
		dbName:  dbName,
		session: session,
		ccfg:    NewDefaultClientConfig(),
	}
	if len(ccfgs) > 0 {
		cs.ccfg = ccfgs[0]
	}
	return cs
}
NewClientStoreWithSession create a client store instance based on mongodb
package mongo
import (
	"github.com/globalsign/mgo"
	"gopkg.in/oauth2.v3"
	"gopkg.in/oauth2.v3/models"
)
type ClientConfig struct {
	ClientsCName string
}
func NewDefaultClientConfig() *ClientConfig {
	return &ClientConfig{
		ClientsCName: "oauth2_clients",
	}
}
func NewClientStore(cfg *Config, ccfgs ...*ClientConfig) *ClientStore {
	session, err := mgo.Dial(cfg.URL)
	if err != nil {
		panic(err)
	}
	return NewClientStoreWithSession(session, cfg.DB, ccfgs...)
}