This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| deb13:otp_authenticator_for_php [2026/08/30 22:09] – Bernard Condrau | deb13:otp_authenticator_for_php [2026/08/30 23:47] (current) – Bernard Condrau | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| sudo chmod 770 / | sudo chmod 770 / | ||
| </ | </ | ||
| - | - Create a virtual environment and activate it:< | + | - Create a virtual environment |
| + | python3 -m venv / | ||
| source / | source / | ||
| - Install pyotp:< | - Install pyotp:< | ||
| - | + | | |
| - | | + | |
| import pyotp | import pyotp | ||
| # Your Base32 secret key (provided when setting up 2FA) | # Your Base32 secret key (provided when setting up 2FA) | ||
| - | secret = "JBSWY3DPEHPK3PXP" | + | secret = "ABCDE1FGHIJK2LMN" |
| # Initialize TOTP | # Initialize TOTP | ||
| Line 20: | Line 20: | ||
| # Generate the current 6-digit code | # Generate the current 6-digit code | ||
| current_code = totp.now() | current_code = totp.now() | ||
| - | print(f" | + | print(current_code)</ |
| + | | ||
| + | - Create a bash script:< | ||
| + | # | ||
| + | source / | ||
| + | python3 / | ||
| + | deactivate | ||
| + | exit 0</ | ||
| + | - Create a php web page which calls the script:< | ||
| + | <?php | ||
| + | $output = shell_exec('/ | ||
| + | echo $output;</ | ||
| + | - Give the scripts correct ownership and permissions:< | ||
| + | sudo chown www-data: | ||
| + | sudo chmod +x / | ||
| + | - In Synology, you can check the OTP like this:< | ||