Skip to main content

Crate sova_auth

Crate sova_auth 

Source
Expand description

Fortify-style authentication for Sova (register, verify, reset, 2FA, RBAC).

Builds on sova_passport (session login) + sova_db. Enable feature mail (and install sova_mail::Mail) for email verification / password reset.

use sova_auth::{AuthMigrator, Feature, Fortify};
// Facade re-exports the same enum as `AuthFeature`.
// Fortify::new() enables Registration only; add mail-backed features explicitly.

app.install(Db::from_env().migrations::<AuthMigrator>());
app.install(memory_sessions());
app.install(Mail::from_env()); // required for ResetPasswords / EmailVerification
app.install(
  Fortify::new()
    .features([Feature::Registration, Feature::ResetPasswords, /* … */])
    .api_mount("/api/auth")
    .login_redirect("/login")
    .home("/cabinet"),
);
cabinet.use_middleware(Fortify::guard());

// Programmatic login (impersonation / seed / admin switch):
let cu = load_current_user(db, id).await?.unwrap();
req.login_user(cu);   // regenerates session + passport:user
req.logout_user();

Modules§

entity

Structs§

AuthMigrator
Compose passport + fortify migrations for Db::migrations::<AuthMigrator>().
ConfirmPasswordForm
CurrentUser
Session principal for Fortify (web + API).
DisableTwoFactorForm
ForgotForm
Fortify
Laravel Fortify-style auth layer on top of Passport + Mail + Db.
FortifyPaths
Relative path segments for Fortify JSON routes.
LoginForm
PasswordForm
ProfileForm
RegisterForm
ResetForm
ResetPasswordMail
Password-reset message.
TwoFactorCodeForm
VerifyEmailMail
Email-verification message.

Enums§

Feature

Traits§

AuthExt
Request helpers for RBAC (CurrentUser from Fortify / Passport session).

Functions§

assign_role
create_permission
create_role
delete_permission
delete_role
find_user_by_email
find_user_by_id
list_permissions
list_roles
load_current_user
make_verify_token
user_id.exp.sig for email verification (24h).
mark_email_verified
parse_verify_token
register_user
revoke_role
send_reset
send_verify
set_avatar
set_user_roles
sync_role_permissions
update_permission
update_role
user_ids_with_permission
Users who hold permission_slug via any role, plus all admin role members.
user_ids_with_role
All user ids that have the given role slug (including via direct role_user).