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
-
AuthorizationServer( issuer: String, authorization_endpoint: #(origin.Origin, String), token_endpoint: #(origin.Origin, String), pushed_authorization_request_endpoint: option.Option( #(#(origin.Origin, String), Bool), ), )
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)