func WithIssuer(i string) GenerateOption {
	return func(o *GenerateOptions) {
		o.Issuer = i
	}
}
WithIssuer for the generated account
package auth
import (
	"context"
	"time"
	"github.com/micro/micro/v3/service/store"
)
func NewOptions(opts ...Option) Options {
	var options Options
	for _, o := range opts {
		o(&options)
	}
	return options
}
type Options struct {
	Issuer string
	ID string
	Secret string
	Token *AccountToken
	PublicKey string
	PrivateKey string
	LoginURL string
	Store store.Store
	Addrs []string
	Context context.Context
}
type Option func(o *Options)
func Addrs(addrs ...string) Option {
	return func(o *Options) {
		o.Addrs = addrs
	}
}
func Issuer(i string) Option {
	return func(o *Options) {
		o.Issuer = i
	}
}
func Store(s store.Store) Option {
	return func(o *Options) {
		o.Store = s
	}
}
func PublicKey(key string) Option {
	return func(o *Options) {
		o.PublicKey = key
	}
}
func PrivateKey(key string) Option {
	return func(o *Options) {
		o.PrivateKey = key
	}
}
func Credentials(id, secret string) Option {
	return func(o *Options) {
		o.ID = id
		o.Secret = secret
	}
}
func ClientToken(token *AccountToken) Option {
	return func(o *Options) {
		o.Token = token
	}
}
func LoginURL(url string) Option {
	return func(o *Options) {
		o.LoginURL = url
	}
}
type GenerateOptions struct {
	Metadata map[string]string
	Scopes []string
	Provider string
	Type string
	Secret string
	Issuer string
	Name string
}
type GenerateOption func(o *GenerateOptions)
func WithSecret(s string) GenerateOption {
	return func(o *GenerateOptions) {
		o.Secret = s
	}
}
func WithType(t string) GenerateOption {
	return func(o *GenerateOptions) {
		o.Type = t
	}
}
func WithMetadata(md map[string]string) GenerateOption {
	return func(o *GenerateOptions) {
		o.Metadata = md
	}
}
func WithProvider(p string) GenerateOption {
	return func(o *GenerateOptions) {
		o.Provider = p
	}
}
func WithScopes(s ...string) GenerateOption {
	return func(o *GenerateOptions) {
		o.Scopes = s
	}
}