go/mqtt/auth/types.go (12 lines of code) (raw):
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
package auth
import "errors"
// Values from AUTH packets sent to and received from the MQTT server.
type Values struct {
AuthMethod string
AuthData []byte
}
// Provider implements an MQTT enhanced authentication exchange. The provider
// may also implement io.Closer in order to clean up any resources when the
// client is shut down.
type Provider interface {
// InitiateAuth is called by the session client when an enhanced auth
// exchange is initiated. An enhanced auth exchange is initiated when a new
// MQTT connection is being created or when the Provider implementation
// calls the requestReauth callback passed to it via AuthSuccess.
//
// `reauth` is true if this is a reauthentication on a live MQTT connection
// and false it is on new MQTT connection.
//
// The return value is a pointer to a Values struct that contains values
// that will be sent to the server via a CONNECT or AUTH packet.
InitiateAuth(reauth bool) (*Values, error)
// ContinueAuth is called by the session client when it receives an AUTH
// packet from the server with reason code 0x18 (continue authentication).
//
// `values` contains the the values from the aforementioned AUTH packet.
//
// The return value is a pointer to to an Values struct that contains
// values that will be sent to the server via an AUTH packet for this round
// of the enhanced auth exchange.
ContinueAuth(values *Values) (*Values, error)
// AuthSuccess is called by the session client when it receives a CONNACK
// or AUTH packet with a success reason code (0x00) after an enhanced auth
// exchange was initiated.
//
// `requestReauth` is a callback that the Provider implementation may call
// to tell the session client to initiate a reauthentication on the live
// MQTT connection. Note that this function is valid for use for the entire
// lifetime of the session client.
AuthSuccess(requestReauth func())
}
var ErrUnexpected = errors.New("unexpected call to auth provider")