Authentification

Helpers de session

Import

use runique::middleware::auth::{
    login, login_staff, logout,
    is_authenticated, get_user_id, get_username,
};

Connexion

// Utilisateur classique — is_staff et is_superuser valent false par défaut
login(&session, user.id, &user.username).await?;

// Utilisateur staff/admin — avec droits et rôles personnalisés
login_staff(
    &session,
    user.id,
    &user.username,
    user.is_staff,
    user.is_superuser,
    user.roles(),
).await?;

Connexion exclusive

Pour n'autoriser qu'un seul appareil connecté à la fois, activer via le builder :

RuniqueApp::builder(config)
    .middleware(|m| m.with_exclusive_login(true))

login et login_staff invalident alors automatiquement toutes les sessions existantes de l'utilisateur à chaque nouvelle connexion. Aucun changement dans les handlers.

Désactivé par défaut (false). Sans effet si un store externe est utilisé.


Déconnexion

logout(&session).await?;

Vérifications

// L'utilisateur est-il connecté ?
if is_authenticated(&session).await {
    // ...
}

// Récupérer l'ID en session
if let Some(user_id) = get_user_id(&session).await {
    // ...
}

// Récupérer le username en session
if let Some(username) = get_username(&session).await {
    // ...
}

Variables d'environnement

Ces variables contrôlent les redirections automatiques des middlewares :

VariableDéfautDescription
REDIRECT_ANONYMOUS/Cible de redirection pour les utilisateurs non connectés
USER_CONNECTED_URL/Cible de redirection pour les utilisateurs déjà connectés