Documentation ¶
Index ¶
- func NewContext(ctx context.Context, auth AuthRecord) context.Context
- type AuthRecord
- type Config
- type IsHandledError
- type LoginRequiredError
- type Manager
- type RedirectError
- type User
- type UserWithClaims
- type UserWithEmail
- type UserWithID
- type UserWithProfile
- type UserWithScopedClaims
- type UserWithUniqueID
- type UserWithUsername
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewContext ¶
func NewContext(ctx context.Context, auth AuthRecord) context.Context
NewContext returns a new Context that carries value auth.
Types ¶
type AuthRecord ¶
type AuthRecord interface { Subject() string AuthorizedScopes() map[string]bool AuthorizeScopes(map[string]bool) Claims(...string) []jwt.Claims User() User SetUser(User) LoggedOn() (bool, time.Time) SetAuthTime(time.Time) }
AuthRecord is an interface which provides identity auth information with scopes and claims..
func FromContext ¶
func FromContext(ctx context.Context) (AuthRecord, bool)
FromContext returns the AuthRecord value stored in ctx, if any.
type Config ¶
type Config struct { SignInFormURI *url.URL SignedOutURI *url.URL ScopesSupported []string Logger logrus.FieldLogger }
Config defines a IdentityManager's configuration settings.
type IsHandledError ¶
type IsHandledError struct { }
IsHandledError is an error which tells that the backend has handled the request and all further handling should stop
func (*IsHandledError) Error ¶
func (err *IsHandledError) Error() string
Error implements the error interface.
type LoginRequiredError ¶
type LoginRequiredError struct {
// contains filtered or unexported fields
}
LoginRequiredError which backends can return to indicate that sign-in is required.
func NewLoginRequiredError ¶
func NewLoginRequiredError(id string, signInURI *url.URL) *LoginRequiredError
NewLoginRequiredError creates a new corresponding error with the provided id.
func (*LoginRequiredError) Error ¶
func (err *LoginRequiredError) Error() string
Error implements the error interface.
func (*LoginRequiredError) SignInURI ¶
func (err *LoginRequiredError) SignInURI() *url.URL
SignInURI returns the sign-in URL of the accociated error.
type Manager ¶
type Manager interface { Authenticate(ctx context.Context, rw http.ResponseWriter, req *http.Request, ar *payload.AuthenticationRequest) (AuthRecord, error) Authorize(ctx context.Context, rw http.ResponseWriter, req *http.Request, ar *payload.AuthenticationRequest, auth AuthRecord) (AuthRecord, error) EndSession(ctx context.Context, rw http.ResponseWriter, req *http.Request, esr *payload.EndSessionRequest) error ApproveScopes(ctx context.Context, userid string, audience string, approvedScopesList map[string]bool) (string, error) ApprovedScopes(ctx context.Context, userid string, audience string, ref string) (map[string]bool, error) Fetch(ctx context.Context, userID string, scopes map[string]bool) (AuthRecord, bool, error) ScopesSupported() []string ClaimsSupported() []string AddRoutes(ctx context.Context, router *mux.Router) }
Manager is a interface to define a identity manager.
type RedirectError ¶
type RedirectError struct {
// contains filtered or unexported fields
}
RedirectError is an error which backends can return if a redirection is required.
func NewRedirectError ¶
func NewRedirectError(id string, redirectURI *url.URL) *RedirectError
NewRedirectError creates a new corresponding error with the provided id and redirect URL.
func (*RedirectError) Error ¶
func (err *RedirectError) Error() string
Error implements the error interface.
func (*RedirectError) RedirectURI ¶
func (err *RedirectError) RedirectURI() *url.URL
RedirectURI returns the redirection URL of the accociated error.
type User ¶
type User interface {
Subject() string
}
User defines a most simple user with an id defined as subject.
type UserWithClaims ¶
type UserWithClaims interface { User Claims() jwt.MapClaims }
UserWithClaims is A User with jwt claims.
type UserWithEmail ¶
UserWithEmail is a User with Email.
type UserWithID ¶
UserWithID is a User with a locally unique numeric id.
type UserWithProfile ¶
UserWithProfile is a User with Name.
type UserWithScopedClaims ¶ added in v0.9.0
type UserWithScopedClaims interface { User ScopedClaims(authorizedScopes map[string]bool) jwt.MapClaims }
UserWithScopedClaims is A user with jwt claims bound to provided scopes.
type UserWithUniqueID ¶ added in v0.4.0
UserWithUniqueID is a User with a unique string id.
type UserWithUsername ¶ added in v0.1.0
UserWithUsername is a User with an username different from subject.