Skip to content

Auth

Library and CLI tool for authentication using pam.

Installation

  1. install dependencies
sh
sudo pacman -Syu meson pam gobject-introspection
sh
sudo dnf install meson pam-devel gobject-introspection-devel
sh
# Not yet documented

On NixOS you have to add astal-auth to security.pam.

nix
{
  security.pam.services.astal-auth = {}
}
  1. clone repo
sh
git clone https://github.com/aylur/astal.git
cd astal/lib/auth
  1. install
sh
meson setup build
meson install -C build

TIP

Most distros recommend manual installs in /usr/local, which is what meson defaults to. If you want to install to /usr instead which most package managers do, set the prefix option:

sh
meson setup --prefix /usr build

Usage

You can browse the Auth reference.

CLI

sh
astal-auth --password my-password

Library

js
import Auth from "gi://AstalAuth"

Auth.Pam.authenticate("password", (_, task) => {
    try {
        AstalAuth.Pam.authenticate_finish(task)
        print("authentication sucessful")
    } catch (error) {
        print(error)
    }
})
py
from gi.repository import AstalAuth as Auth

def callback(_, task) -> None:
    try:
        Auth.Pam.authenticate_finish(task)
        print("success")
    except Exception as e:
        print(e)

Auth.Pam.authenticate("password", callback)
lua
local Auth = require("lgi").require("AstalAuth")

Auth.Pam.authenticate("password", function(_, task)
    local status, err = Auth.Pam.authenticate_finish(task)
    if err ~= nil then
        print(err)
    else
        print("success")
    end
end)
vala
// Not yet documented