spotless/oauth_2_1

Types

pub type App {
  App(
    client_type: ClientType,
    client_id: String,
    redirect_uri: uri.Uri,
  )
}

Constructors

pub type AuthorizationServer {
  AuthorizationServer(
    issuer: String,
    authorization_endpoint: #(origin.Origin, String),
    token_endpoint: #(origin.Origin, String),
    pushed_authorization_request_endpoint: option.Option(
      #(#(origin.Origin, String), Bool),
    ),
  )
}

Constructors

pub type ClientType {
  Public
  Confidential(client_secret: String)
}

Constructors

  • Public
  • Confidential(client_secret: String)

Values

pub fn add_parameter(
  request: authorization.Request,
  key: String,
  value: String,
) -> authorization.Request
pub fn authorize(
  server: AuthorizationServer,
  app: App,
  keypair: option.Option(effect.KeyPair(a)),
  scope: List(String),
  state: String,
  code_challenge_method: proof_key_for_code_exchange.CodeChallengeMethod,
) -> effect.Effect(Result(token.Response, snag.Snag), a)
pub fn grant(
  redirect: uri.Uri,
  server: AuthorizationServer,
  app: App,
  code_verifier: String,
) -> effect.Effect(
  Result(
    #(
      token.Response,
      option.Option(String),
      option.Option(String),
    ),
    snag.Snag,
  ),
  a,
)

Copy/Paste of main authorize function but without DPoP and with state, iss returned

pub fn start(
  server: AuthorizationServer,
  app: App,
  scope: List(String),
  state: String,
  code_challenge_method: proof_key_for_code_exchange.CodeChallengeMethod,
) -> effect.Effect(
  Result(#(authorization.Request, String), snag.Snag),
  a,
)
Search Document