Commit Graph
35 Commits
Author SHA1 Message Date
LeoVasanko c605926c30 Implement code word based remote authentication (#1)
Add comprehensive remote authentication system allowing users to log in from one device by authenticating from another trusted device. Features include:

- Proof of Work (PoW) protection using PBKDF2-SHA512 to prevent abuse
- Simple pairing codes (3 words) protected by dynamic PoW difficulty
- Autocomplete pairing code input with error checking
- Real-time WebSocket communication between devices

Unlike device addition links and reset links with QR codes that only allow adding an authentication method, and that work offline over the duration of several days, this mechanism is strictly online, with 5 minute time limit.
2025-12-08 23:56:48 +00:00
Leo Vasanko 219dd70665 Viewing linked passkeys/sessions (by clicking either one of them). 2025-12-03 13:21:52 -06:00
Leo Vasanko 4306323c44 Consistently use apiJson for fetches, with timeout and proper error handling (less code duplication). 2025-12-03 13:00:24 -06:00
Leo Vasanko 1f75e0a305 Make auth/admin apps API calls use apiFetch, a new function that asks for permission by iframe if needed. Implement max-age checks for API authz.verify as well along with a custom exception type that carries metadata. 2025-12-03 11:17:02 -06:00
Leo Vasanko bd13dbd1a0 Implement session termination in admin API, for completeness. 2025-12-03 01:20:52 +00:00
Leo Vasanko ca8d65ad25 Improved profile view layout. 2025-12-03 01:04:07 +00:00
Leo Vasanko c83450dace Major refactor of frontend source tree such that paths better match where they are served. 2025-12-02 22:09:07 +00:00
Leo Vasanko 2a5f06d707 Moved the restricted-api iframe src to /auth/api/restricted and removed the endpoint of the other restricted app. 2025-12-02 18:34:59 +00:00
Leo Vasanko 6f9f4aefc1 Implement Forbidden view for API calls, cleanup and better UX. 2025-12-02 17:36:37 +00:00
Leo Vasanko a05d4aec81 Better error messages from backend, avoid bad toasts, cleanup of session validation. 2025-12-02 16:37:27 +00:00
Leo Vasanko 77d8e97dc9 Update admin app authentication in API mode too, reusing components between it and the main app. 2025-12-02 15:42:55 +00:00
Leo Vasanko cb26c61d5f Implement restricted-api for JS-driven auth calls, examples added (WIP!). Layout and styling simplified. 2025-12-02 03:10:16 +00:00
Leo Vasanko bfb11cc20f A major refactoring for more consistent and stricter flows.
- Force using the dedicated authentication site configured via auth-host
- Stricter host validation
- Using the restricted app consistently for all access control (instead of the old loginview).
2025-10-04 15:55:43 -06:00
Leo Vasanko 591ea626bf Add host-based authentication, UTC timestamps, session management, and secure cookies; fix styling issues; refactor to remove module; update database schema for sessions and reset tokens. 2025-10-03 18:31:54 -06:00
Leo Vasanko 5d8304bbd9 Refactor user-profile, restricted access and reset token registration as separate apps so the frontend does not need to guess which context it is running in.
Support user-navigable URLs at / as well as /auth/, allowing for a dedicated authentication site with pretty URLs.
2025-10-02 15:44:48 -06:00
Leo Vasanko ed7d3ee0fc Admin app: guard rails extended, consistent styling, also share styling with main app. 2025-09-30 16:38:14 -06:00
Leo Vasanko 89b40cd080 Admin app divided to separate components. 2025-09-30 12:54:18 -06:00
Leo Vasanko d46d50b91a Massive style redesign, WIP. 2025-09-29 21:02:49 -06:00
Leo Vasanko 6439437e8b Implement breadcrumb navigation. 2025-09-27 20:47:45 -06:00
Leo Vasanko c9f9b28bf4 Major refactoring of admin API (permissions, paths) 2025-09-02 18:08:06 -06:00
Leo Vasanko 312d23b79a Refactor API under /auth/api 2025-09-02 14:32:19 -06:00
Leo Vasanko 70551cebb7 Better navigation on admin app. 2025-09-01 20:04:56 -06:00
Leo Vasanko 5a9bee9a1d Smarter user info 2025-09-01 20:02:52 -06:00
Leo Vasanko fd11cac4bc Unify user info across admin app and profile view. 2025-09-01 19:56:18 -06:00
Leo Vasanko 7036338b33 Use rp-name for frontend branding 2025-09-01 18:48:59 -06:00
Leo Vasanko 6d6c4ee35d User rename fixes. 2025-09-01 18:20:32 -06:00
Leo Vasanko 37eaffff3f Renaming of users in registration, profile and admin app. 2025-09-01 18:13:01 -06:00
Leo Vasanko bc87f76d11 Crude dialog rather than prompt() for input fields. (needs cleanup) 2025-09-01 17:34:45 -06:00
Leo Vasanko 2b03fa74cd Only allow safe characters in permission IDs 2025-08-30 19:10:00 -06:00
Leo Vasanko 4f094a7016 Fixing cascade. 2025-08-30 14:07:32 -06:00
Leo Vasanko f3e3679b6d Actually usable admin panel 2025-08-29 22:38:22 -06:00
Leo Vasanko 4db7f2e9a6 Almost usable admin panel 2025-08-29 21:54:51 -06:00
Leo Vasanko efdfa77fc9 Basic navigation between auth and user pages. 2025-08-29 20:50:37 -06:00
Leo Vasanko 7380f09458 Major changes to server startup. Admin page tuning. 2025-08-29 20:41:38 -06:00
Leo Vasanko e0717f005a Drafting admin app (frontend) 2025-08-12 13:24:27 -07:00