...

Package oauth

import "github.com/twmb/franz-go/pkg/sasl/oauth"
Overview
Index

Overview ▾

Package oauth provides OAUTHBEARER sasl authentication as specified in RFC7628.

func Oauth

func Oauth(authFn func(context.Context) (Auth, error)) sasl.Mechanism

Oauth returns an OAUTHBEARER sasl mechanism that will call authFn whenever authentication is needed. The returned Auth is used for a single session.

type Auth

Auth contains information for authentication.

This client may add fields to this struct in the future if Kafka adds more capabilities to Oauth.

type Auth struct {
    // Zid is an optional authorization ID to use in authenticating.
    Zid string

    // Token is the oauthbearer token to use for a single session's
    // authentication.
    Token string
    // Extensions are key value pairs to add to the authentication request.
    Extensions map[string]string
    // contains filtered or unexported fields
}

func (Auth) AsMechanism

func (a Auth) AsMechanism() sasl.Mechanism

AsMechanism returns a sasl mechanism that will use 'a' as credentials for all sasl sessions.

This is a shortcut for using the Oauth function and is useful when you do not need to live-rotate credentials.