Conversation
This comment has been minimized.
This comment has been minimized.
|
@Tokisaki-Galaxy: Nice, good job! Do not forget to solve: |
|
Looks very polished @Tokisaki-Galaxy! Does this use TOTP? If the OpenWrt device doesn't have RTC and is offline or generally doesn't have correct time, does SSH become the only option to login? Is there a README/instructions (ideally a hint on failed attempt) on how to disable 2FA from SSH/CLI for people who may be locked out of WebUI and can't read code ahead of time? |
|
Please refer to the newly added video at the top of the description section for details. The plugin can choose either TOTP or HOTP, but TOTP is recommended. Regarding the documentation for SSH/CLI, I'm not quite sure where it should be placed. Should it be directly included in the web UI? But if users don't read it carefully, they might not be able to log in and it would be impossible to see the result. Do you have any suggestions? Previously, it was planned to add backup code, but this was abandoned because it would cause the bitward auto-fill function to become unusable and the complexity would be too high. |
d55e8c5 to
0e97b5b
Compare
This comment has been minimized.
This comment has been minimized.
fe02937 to
bed757a
Compare
|
@Tokisaki-Galaxy let's see whether the plugin structure needs some modifications to handle 2FA stuff. |
bed757a to
325529e
Compare
|
@systemcrash |
325529e to
6561e45
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
6561e45 to
ef1dfdd
Compare
ef1dfdd to
e3d2761
Compare
Co-authored-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: tokisaki galaxy <moebest@outlook.jp>
e3d2761 to
f91d3eb
Compare
|
Refactored |
...uci-app-2fa/root/usr/share/ucode/luci/plugins/auth/login/bb4ea47fcffb44ec9bb3d3673c9b4ed2.uc
Show resolved
Hide resolved
...uci-app-2fa/root/usr/share/ucode/luci/plugins/auth/login/bb4ea47fcffb44ec9bb3d3673c9b4ed2.uc
Outdated
Show resolved
Hide resolved
...uci-app-2fa/root/usr/share/ucode/luci/plugins/auth/login/bb4ea47fcffb44ec9bb3d3673c9b4ed2.uc
Outdated
Show resolved
Hide resolved
...uci-app-2fa/root/usr/share/ucode/luci/plugins/auth/login/bb4ea47fcffb44ec9bb3d3673c9b4ed2.uc
Outdated
Show resolved
Hide resolved
...uci-app-2fa/root/usr/share/ucode/luci/plugins/auth/login/bb4ea47fcffb44ec9bb3d3673c9b4ed2.uc
Outdated
Show resolved
Hide resolved
...uci-app-2fa/root/usr/share/ucode/luci/plugins/auth/login/bb4ea47fcffb44ec9bb3d3673c9b4ed2.uc
Outdated
Show resolved
Hide resolved
This comment has been minimized.
This comment has been minimized.
This update adds a priority option and enables QR code display for 2FA. Signed-off-by: tokisaki galaxy <moebest@outlook.jp>
733664e to
6dd1bea
Compare
use native ubus IP validation instead of custom regex and parsing, use native fs lock instead of popen-call and add log for logging auth events. now, will clean stale rate limit entries on each check and log when entries are removed due to staleness. This prevents the rate limit file from growing indefinitely with old entries. Signed-off-by: tokisaki galaxy <moebest@outlook.jp>
This comment has been minimized.
This comment has been minimized.
|
|
||
| include $(TOPDIR)/rules.mk | ||
|
|
||
| PKG_NAME:=luci-app-2fa |
There was a problem hiding this comment.
OK - since it's an auth plugin, let's house it in the plugin folder.
| // (e.g., after power loss on devices without RTC battery), TOTP codes will | ||
| // be incorrect and users will be locked out. This threshold disables TOTP | ||
| // when system time appears uncalibrated. | ||
| const DEFAULT_MIN_VALID_TIME = 1767225600; |
There was a problem hiding this comment.
There is also the trick that the system uses - it sets the minimum clock value to the last file-change time found in the /etc FS. Check openwrt/package/base-files/files/etc/init.d/sysfixtime for how it works. If this is available as a 'fallback', that's also not bad.
Failed checksIssues marked with an ❌ are failing checks. Commit 2bb8966
Commit 6dd1bea
For more details, see the full job log. Something broken? Consider providing feedback. |
Signed-off-by: <my@email.address>row (viagit commit --signoff)<package name>: titlefirst line subject for packagesPKG_VERSIONin the Makefile[POC,WIP] Implement 2-Factor Authentication with TOTP or HOTP #7069
Feature request: Support for Passkey (WebAuthn) authentication in LuCI #8273
2026-02-04.180055.mp4
the app must changed LuCI core file because:
Security Measures
Constant-time string comparison to prevent timing attacks
Username sanitization to prevent command injection
Array-based popen to prevent shell injection
OTP format validation (exactly 6 digits)
Session destroyed if 2FA verification fails
Uses authenticated session username to prevent bypass attacks
origin repo https://github.com/Tokisaki-Galaxy/luci-app-2fa