Pass client to more of the runtime

This commit is contained in:
Ben Toogood
2020-05-11 17:57:39 +01:00
parent f892b41299
commit efb64b7dbb
10 changed files with 56 additions and 20 deletions

View File

@@ -4,6 +4,7 @@ import (
"time"
"github.com/micro/go-micro/v2/auth/provider"
"github.com/micro/go-micro/v2/client"
"github.com/micro/go-micro/v2/store"
)
@@ -12,10 +13,12 @@ func NewOptions(opts ...Option) Options {
for _, o := range opts {
o(&options)
}
if len(options.Namespace) == 0 {
options.Namespace = DefaultNamespace
}
if options.Client == nil {
options.Client = client.DefaultClient
}
return options
}
@@ -39,6 +42,8 @@ type Options struct {
LoginURL string
// Store to back auth
Store store.Store
// Client to use for RPC
Client client.Client
}
type Option func(o *Options)
@@ -100,6 +105,13 @@ func LoginURL(url string) Option {
}
}
// WithClient sets the client to use when making requests
func WithClient(c client.Client) Option {
return func(o *Options) {
o.Client = c
}
}
type GenerateOptions struct {
// Metadata associated with the account
Metadata map[string]string

View File

@@ -42,9 +42,11 @@ func (s *svc) Init(opts ...auth.Option) {
o(&s.options)
}
dc := client.DefaultClient
s.auth = pb.NewAuthService("go.micro.auth", dc)
s.rule = pb.NewRulesService("go.micro.auth", dc)
if s.options.Client == nil {
s.options.Client = client.DefaultClient
}
s.auth = pb.NewAuthService("go.micro.auth", s.options.Client)
s.rule = pb.NewRulesService("go.micro.auth", s.options.Client)
// if we have a JWT public key passed as an option,
// we can decode tokens with the type "JWT" locally