registration

package
v0.0.12 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2021 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package registration implements the OAuth 2.0 Dynamic Client Registration Protocol.

This should be used when a client needs to dynamically or programmatically register with the authorization server.

See https://tools.ietf.org/html/rfc7591

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientInformationResponse

type ClientInformationResponse struct {
	// RegistrationClientURI is the string containing the fully qualified URL of the client configuration endpoint for this client.
	RegistrationClientURI string `json:"registration_client_uri"`
	// RegistrationAccessToken is the string containing the access token to be used at the client configuration endpoint.
	RegistrationAccessToken string `json:"registration_access_token"`

	// ClientID is the OAuth 2.0 client identifier string.
	ClientID string `json:"client_id"`
	// ClientSecret is the OAuth 2.0 client secret string.
	ClientSecret string `json:"client_secret,omitempty"`
	// ClientIDIssuedAt is the time at which the client identifier was issued.
	ClientIDIssuedAt int64 `json:"client_id_issued_at,omitempty"`
	// ClientSecretExpiresAt is the time at which the client secret will expire or 0 if it will not expire.
	ClientSecretExpiresAt int64 `json:"client_secret_expires_at,omitempty"`

	// ClientMetadata contains all of the registered metadata about the client.
	ClientMetadata
}

ClientInformationResponse contains the client identifier as well as the client secret, if the client is confidential client.

func Read

func Read(ctx context.Context, clientURI, accessToken string) (*ClientInformationResponse, error)

Read fetches back the client information from a registration client URI

type ClientMetadata

type ClientMetadata struct {
	// RedirectURIs is the array of redirection URIs for use in redirect-based flows such as the authorization code and implicit flows.
	RedirectURIs []string `json:"redirect_uris"`
	// GrantTypes is the array of OAuth 2.0 grant type strings that the client case use at the token endpoint.
	GrantTypes []string `json:"grant_types"`
	// ResponseTypes is the array of OAuth 2.0 response type strings that the client use at the authorization endpoint.
	ResponseTypes []string `json:"response_types"`
	// ClientName is the human-readable string name of the client to be presented to the end-user during authorization.
	ClientName string `json:"client_name"`
	// Scope is the string containing a space-separated list of scope values that the client can use when requesting access tokens.
	Scope string `json:"scope,omitempty"`
}

ClientMetadata is the set of metadata values associated with the client.

type ClientRegistrationErrorResponse

type ClientRegistrationErrorResponse struct {
	// ErrorCode is the single ASCII error code string.
	ErrorCode string `json:"error"`
	// ErrorDescription is the human-readable ASCII test description of the error used for debugging.
	ErrorDescription string `json:"error_description,omitempty"`
}

ClientRegistrationErrorResponse is returned when an OAuth 2.0 error condition occurs.

func (*ClientRegistrationErrorResponse) Error

Error returns the string representation of the error response for debugging.

type Config

type Config struct {
	// RegistrationURL is the URL of the client registration endpoint
	RegistrationURL string
	// InitialToken is an optional token used to make registration requests. If not specified, it may be necessary
	// to configure the HTTP client to perform the appropriate authorization out of the scope of this configuration.
	InitialToken *oauth2.Token
}

Config describes a client registration process, including the initial authorization and the server's endpoint URL.

func (*Config) Register

func (c *Config) Register(ctx context.Context, client *ClientMetadata) (*ClientInformationResponse, error)

Register uses the initial access token to register a client.

Jump to

Keyboard shortcuts

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