mirror of
https://github.com/lightninglabs/aperture.git
synced 2025-12-18 09:34:20 +01:00
The target service name remains unused in its current form, but will be required in order to verify that an incoming request with an LSAT attached is authorized to access the service being attempted. We can derive this from the request's host field, but we choose to extend the methods with the additional parameter in order to prevent parsing the host field again to determine which service is being accessed.
27 lines
816 B
Go
27 lines
816 B
Go
package auth
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/lightningnetwork/lnd/lntypes"
|
|
)
|
|
|
|
// Authenticator is the generic interface for validating client headers and
|
|
// returning new challenge headers.
|
|
type Authenticator interface {
|
|
// Accept returns whether or not the header successfully authenticates
|
|
// the user to a given backend service.
|
|
Accept(*http.Header, string) bool
|
|
|
|
// FreshChallengeHeader returns a header containing a challenge for the
|
|
// user to complete.
|
|
FreshChallengeHeader(*http.Request, string) (http.Header, error)
|
|
}
|
|
|
|
// Challenger is an interface for generating new payment challenges.
|
|
type Challenger interface {
|
|
// NewChallenge creates a new LSAT payment challenge, returning a
|
|
// payment request (invoice) and the corresponding payment hash.
|
|
NewChallenge() (string, lntypes.Hash, error)
|
|
}
|