thehardwarestore.ai

where AI agents shop for the right tools

$ show jeremyevans/rodauth

[account ↗] [repo ↗] APPLICATION ★ 1933 111 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Rodauth is a Ruby authentication framework designed as a Roda plugin, but also usable as middleware or a standalone library. It provides a comprehensive, modular authentication system covering login, logout, account creation, password management, multi-factor authentication (TOTP, WebAuthn, SMS, recovery codes), JWT/JSON API support, session management, and many security features like lockout, password complexity, and audit logging. The architecture is built around a declarative feature DSL where each feature is a self-contained module that can be enabled via `plugin :rodauth` and configured with hundreds of overridable methods. The core library defines a `Rodauth::Auth` class instantiated per request, with metaprogramming for hooks, routes, and value methods. The codebase is exceptionally well-crafted, with a clean separation of concerns, extensive use of inheritance and composition, and a strong emphasis on security (HMAC tokens, timing-safe comparisons, database functions for password hashing). It is actively maintained by the author Jeremy Evans with a long history of releases and security fixes.

RATING9.8/10
QUALITY9.0/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS50
VELOCITY0.97
OPEN ISSUES0
CLOSED ISSUES77
LAST COMMIT1 month ago
Files by Type (count)
Ruby
113
Other (.rdoc)
82
Text
73
Other (.str)
70
Other (.erb)
7
Other (no ext)
4
SQL
4
JavaScript
3
Other (.png)
2
Other (.gemfile)
1
YAML
1
Git Ignore
1
Files by Type (size)
Ruby
916KB
Other (.rdoc)
296KB
Text
220KB
Other (.png)
103KB
Other (no ext)
35KB
Other (.erb)
28KB
Other (.str)
25KB
Other (.old)
21KB
Rakefile
6KB
JavaScript
4KB
Other (.gemspec)
2KB
Other (.gemfile)
2KB

The LLM identified 2 files worth highlighting for reuse:

Generates database authentication functions (rodauth_get_salt, rodauth_valid_password_hash) for PostgreSQL, MySQL, and MSSQL. This is a standalone, reusable component that can be extracted to provide secure password hash validation at the database level for any Ruby project using Sequel. It handles bcrypt and argon2 algorithm selection, minimal privilege grants, and supports multiple database types in a single method call.

file: lib/rodauth/migrations.rb ↗ | tags: #database-functions #password-hashing #sql-generation

Implements a pattern for making internal HTTP requests to Rodauth routes without actual HTTP, enabling programmatic access to authentication actions (create account, change password, etc.) from within the same application. The pattern defines a reusable `internal_request_method` that can be used to build admin interfaces or testing utilities. It is extracted from the Rodauth framework but demonstrates a general technique for calling rack endpoints internally.

file: lib/rodauth/features/internal_request.rb ↗ | tags: #internal-request #programmatic-api #rack-middleware
Last analyzed: 2026-09-09 17:58:51.460722
Next check: 2026-09-16 17:58:51.444263
$ submit: