gbr/msal
Gleam Microsoft Authentication Library
pub fn main() {
let cfg =
msal.cfg("client_id")
|> msal.cfg_add_auth("authority", "https://login.microsoftonline/common")
|> msal.cfg_add_cache("cacheLocation", "localStorage")
use msal <- promise.try_await(msal.new(cfg))
use response <- promise.map_try(msal.login(msal, msal.popup, None))
msal.res_get(response, "idToken") |> echo
msal.res_get(response, "accessToken") |> echo
msal.res_parent_get(response, "account", "username") |> echo
}
pub fn main() {
let msal =
cfg("client_id")
|> cfg_add_auth("authority", "https://login.microsoftonline/common")
|> cfg_add_cache("cacheLocation", "localStorage")
|> new()
use msal <- promise.map_try(msal)
use account_active <- result.try(account_active(msal))
echo account_active
}
Types
pub type Msal =
domain.Msal
Values
pub fn cfg_add_auth(
in: domain.Configuration,
key: String,
value: a,
) -> domain.Configuration
pub fn cfg_add_cache(
in: domain.Configuration,
key: String,
value: a,
) -> domain.Configuration
pub fn cfg_add_system(
in: domain.Configuration,
key: String,
value: a,
) -> domain.Configuration
pub const code: domain.Iteraction
pub fn handle_redirect(
in: domain.Msal,
) -> promise.Promise(Result(domain.Response, String))
pub fn login(
in: domain.Msal,
iteraction: domain.Iteraction,
req: option.Option(domain.Request),
) -> promise.Promise(Result(domain.Response, String))
pub fn logout(
in: domain.Msal,
iteraction: domain.Iteraction,
req: option.Option(domain.Request),
) -> promise.Promise(Result(Nil, String))
pub fn nested(
cfg: domain.Configuration,
) -> promise.Promise(Result(domain.Msal, String))
pub fn new(
cfg: domain.Configuration,
) -> promise.Promise(Result(domain.Msal, String))
pub const popup: domain.Iteraction
pub const redirect: domain.Iteraction
pub fn req() -> domain.Request
pub fn req_add(
in: domain.Request,
key: String,
value: a,
) -> domain.Request
pub fn req_parent_add(
in: domain.Request,
parent: String,
key: String,
value: a,
) -> domain.Request
pub fn res_get(
in: domain.Response,
key: String,
) -> option.Option(a)
pub fn res_parent_get(
in: domain.Response,
parent: String,
key: String,
) -> option.Option(a)
pub const silent: domain.Iteraction
pub fn token(
in: domain.Msal,
iteraction: domain.Iteraction,
req: domain.Request,
) -> promise.Promise(Result(domain.Response, String))