[][src]Module oxide_auth::primitives

A collection of primites useful for more than one authorization method.

A primitive is the smallest independent unit of policy used in OAuth related endpoints. For example, an authorizer generates and verifies Authorization Codes. There only is, as you might have noticed, only the OAuth2 code grant method. But abstracting away the underlying primitives makes it possible to provide –e.g.– a independent database based implementation.

These should be used to build or instantiate an Endpoint, for example Generic or your own.

use oxide_auth::frontends::simple::endpoint::Generic;
use oxide_auth::primitives::{
    authorizer::AuthMap,
    generator::RandomGenerator,
    issuer::TokenMap,
    registrar::ClientMap,
};

Generic {
    authorizer: AuthMap::new(RandomGenerator::new(16)),
    registrar: ClientMap::new(),
    issuer: TokenMap::new(RandomGenerator::new(16)),
    // ...
};

Modules

authorizer

Authorizers are need to exchange code grants for bearer tokens.

generator

Generators produce string code grant and bearer tokens for a determined grant.

grant

Encapsulates various shared mechanisms for handlings different grants.

issuer

Generates bearer tokens and refresh tokens.

prelude

Commonly used primitives for frontends and backends.

registrar

Registrars administer a database of known clients.

scope

Defines the Scope type and parsing/formatting according to the rfc.