spotless/oauth_2_1

Types

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

Constructors

  • App(
      client_type: ClientType,
      client_id: String,
      redirect_uri: String,
    )
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 authorize(
  server: AuthorizationServer,
  app: App,
  keypair: option.Option(task.KeyPair(a)),
  scope: List(String),
  state: String,
  code_challenge_method: proof_key_for_code_exchange.CodeChallengeMethod,
) -> task.Effect(token.Response, a)
pub fn grant(
  redirect: uri.Uri,
  server: AuthorizationServer,
  app: App,
  code_verifier: String,
) -> task.Effect(
  #(token.Response, option.Option(String), option.Option(String)),
  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,
) -> task.Effect(#(authorization.Request, String), a)
Search Document