consent

package
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 5, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AcceptConsentRequest

type AcceptConsentRequest struct {
	GrantScope               []string               `json:"grant_scope"`
	GrantAccessTokenAudience []string               `json:"grant_access_token_audience"`
	Remember                 bool                   `json:"remember"`
	RememberFor              int64                  `json:"remember_for"`
	HandledAt                time.Time              `json:"handled_at"`
	Session                  *ConsentRequestSession `json:"session"`
	Context                  map[string]interface{} `json:"context"`
}

type ConsentChallenge

type ConsentChallenge struct {
	Challenge         string                    `json:"challenge"`
	AuthRequest       fosite.AuthorizeRequester `json:"-"`
	ClientID          string                    `json:"client_id"`
	RequestedScopes   []string                  `json:"requested_scopes"`
	RequestedAudience []string                  `json:"requested_audience"`
	RedirectURI       string                    `json:"redirect_uri"`
	State             string                    `json:"state"`
	Subject           string                    `json:"subject"`
	LoginChallenge    string                    `json:"login_challenge"`
	CreatedAt         time.Time                 `json:"created_at"`
	ExpiresAt         time.Time                 `json:"expires_at"`
	Skip              bool                      `json:"skip"`
}

type ConsentRequestSession

type ConsentRequestSession struct {
	AccessToken map[string]interface{} `json:"access_token"`
	IDToken     map[string]interface{} `json:"id_token"`
}

type ConsentVerifier

type ConsentVerifier struct {
	Verifier        string                 `json:"verifier"`
	Challenge       string                 `json:"challenge"`
	GrantedScopes   []string               `json:"granted_scopes"`
	GrantedAudience []string               `json:"granted_audience"`
	Remember        bool                   `json:"remember"`
	RememberFor     int64                  `json:"remember_for"`
	Session         *ConsentRequestSession `json:"session"`
	CreatedAt       time.Time              `json:"created_at"`
	ExpiresAt       time.Time              `json:"expires_at"`
	Rejected        bool                   `json:"rejected"`
	RejectReason    *RejectConsentRequest  `json:"reject_reason,omitempty"`
}

type Handler

type Handler struct {
	// contains filtered or unexported fields
}

func NewHandler

func NewHandler(clientManager *clients.Registry, manager *Manager, cfg authConfig.Config) *Handler

func (*Handler) SetupRoutes

func (c *Handler) SetupRoutes(mux *http.ServeMux)

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager

func NewManager(cfg authConfig.Config) *Manager

func (*Manager) AcceptChallenge

func (ccm *Manager) AcceptChallenge(challenge string, acceptRequest *AcceptConsentRequest) (string, *ConsentChallenge, error)

func (*Manager) CreateChallenge

func (ccm *Manager) CreateChallenge(ar fosite.AuthorizeRequester, subject string, loginChallenge string) (string, error)

func (*Manager) GetChallenge

func (ccm *Manager) GetChallenge(challenge string) (*ConsentChallenge, error)

func (*Manager) InitiateConsentFlow

func (m *Manager) InitiateConsentFlow(ar fosite.AuthorizeRequester, subject string, loginChallenge string) (string, error)

func (*Manager) RejectChallenge

func (ccm *Manager) RejectChallenge(challenge string, rejectRequest *RejectConsentRequest) (string, *ConsentChallenge, error)

func (*Manager) ResolveVerifier

func (ccm *Manager) ResolveVerifier(verifier string) (*ConsentVerifier, *ConsentChallenge, error)

func (*Manager) ValidateVerifier

func (ccm *Manager) ValidateVerifier(verifier string) (*ConsentVerifier, *ConsentChallenge, error)

type RejectConsentRequest

type RejectConsentRequest struct {
	Error            string `json:"error"`
	ErrorDescription string `json:"error_description"`
	ErrorHint        string `json:"error_hint"`
	StatusCode       int    `json:"status_code"`
}

type Request

type Request struct {
	Challenge         string                  `json:"challenge"`
	RequestedScopes   []string                `json:"requested_scope"`
	RequestedAudience []string                `json:"requested_audience"`
	Skip              bool                    `json:"skip"`
	Subject           string                  `json:"subject"`
	Client            *clients.ClientResponse `json:"client"`
	RequestURL        string                  `json:"request_url"`
	LoginChallenge    string                  `json:"login_challenge"`
	LoginSessionID    string                  `json:"login_session_id"`
	ACR               string                  `json:"acr"`
	Context           map[string]interface{}  `json:"context"`
}

func ToRequest

func ToRequest(cc *ConsentChallenge, client *clients.Client) *Request

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL