1
0
mirror of https://github.com/redis/go-redis.git synced 2025-04-19 07:22:17 +03:00

update documentation

This commit is contained in:
Nedyalko Dyakov 2025-03-24 16:29:15 +02:00
parent 9ef438bd15
commit df9bfce954
No known key found for this signature in database
GPG Key ID: 5571106A08EA25A3
2 changed files with 23 additions and 4 deletions

View File

@ -1,20 +1,36 @@
package auth package auth
// StreamingCredentialsProvider is an interface that defines the methods for a streaming credentials provider.
// It is used to provide credentials for authentication.
// The CredentialsListener is used to receive updates when the credentials change.
type StreamingCredentialsProvider interface { type StreamingCredentialsProvider interface {
// Subscribe subscribes to the credentials provider and returns a channel that will receive updates. // Subscribe subscribes to the credentials provider for updates.
// The first response is blocking, then data will be pushed to the channel. // It returns the current credentials, a cancel function to unsubscribe from the provider,
// and an error if any.
Subscribe(listener CredentialsListener) (Credentials, CancelProviderFunc, error) Subscribe(listener CredentialsListener) (Credentials, CancelProviderFunc, error)
} }
// CancelProviderFunc is a function that is used to cancel the subscription to the credentials provider.
// It is used to unsubscribe from the provider when the credentials are no longer needed.
type CancelProviderFunc func() error type CancelProviderFunc func() error
// CredentialsListener is an interface that defines the methods for a credentials listener.
// It is used to receive updates when the credentials change.
// The OnNext method is called when the credentials change.
// The OnError method is called when an error occurs while requesting the credentials.
type CredentialsListener interface { type CredentialsListener interface {
OnNext(credentials Credentials) OnNext(credentials Credentials)
OnError(err error) OnError(err error)
} }
// Credentials is an interface that defines the methods for credentials.
// It is used to provide the credentials for authentication.
type Credentials interface { type Credentials interface {
// BasicAuth returns the username and password for basic authentication.
BasicAuth() (username string, password string) BasicAuth() (username string, password string)
// RawCredentials returns the raw credentials as a string.
// This can be used to extract the username and password from the raw credentials or
// additional information if present in the token.
RawCredentials() string RawCredentials() string
} }
@ -23,15 +39,18 @@ type basicAuth struct {
password string password string
} }
// RawCredentials returns the raw credentials as a string.
func (b *basicAuth) RawCredentials() string { func (b *basicAuth) RawCredentials() string {
return b.username + ":" + b.password return b.username + ":" + b.password
} }
// BasicAuth returns the username and password for basic authentication.
func (b *basicAuth) BasicAuth() (username string, password string) { func (b *basicAuth) BasicAuth() (username string, password string) {
return b.username, b.password return b.username, b.password
} }
func NewCredentials(username, password string) Credentials { // NewBasicCredentials creates a new Credentials object from the given username and password.
func NewBasicCredentials(username, password string) Credentials {
return &basicAuth{ return &basicAuth{
username: username, username: username,
password: password, password: password,

View File

@ -336,7 +336,7 @@ func (c *baseClient) initConn(ctx context.Context, cn *pool.Conn) error {
} }
if !authenticated && password != "" { if !authenticated && password != "" {
err = c.reAuth(ctx, conn, auth.NewCredentials(username, password)) err = c.reAuth(ctx, conn, auth.NewBasicCredentials(username, password))
if err != nil { if err != nil {
return err return err
} }