{"id":15027197,"url":"https://github.com/joho1968/cloudbridge-2fa","last_synced_at":"2026-03-16T22:06:21.918Z","repository":{"id":213218703,"uuid":"733139462","full_name":"joho1968/Cloudbridge-2FA","owner":"joho1968","description":"Uncomplicated 2FA plugin for WordPress","archived":false,"fork":false,"pushed_at":"2024-11-21T10:36:30.000Z","size":302,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-02T06:33:12.678Z","etag":null,"topics":["2fa","php","php7","php8","php80","php81","security","wordpress","wordpress-plugin","wordpress-security","wordpress5","wordpress6"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joho1968.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-18T16:43:56.000Z","updated_at":"2024-11-21T10:36:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"ca18ab6d-2a51-4cd2-ba51-f3229be0fede","html_url":"https://github.com/joho1968/Cloudbridge-2FA","commit_stats":null,"previous_names":["joho1968/cloudbridge-2fa"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/joho1968/Cloudbridge-2FA","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joho1968%2FCloudbridge-2FA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joho1968%2FCloudbridge-2FA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joho1968%2FCloudbridge-2FA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joho1968%2FCloudbridge-2FA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joho1968","download_url":"https://codeload.github.com/joho1968/Cloudbridge-2FA/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joho1968%2FCloudbridge-2FA/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273244306,"owners_count":25070958,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2fa","php","php7","php8","php80","php81","security","wordpress","wordpress-plugin","wordpress-security","wordpress5","wordpress6"],"created_at":"2024-09-24T20:05:56.841Z","updated_at":"2026-03-16T22:06:21.898Z","avatar_url":"https://github.com/joho1968.png","language":"PHP","readme":"[![Software License](https://img.shields.io/badge/License-GPL%20v2-green.svg?style=flat-square)](LICENSE) [![PHP 7.4\\+](https://img.shields.io/badge/PHP-7.4-blue?style=flat-square)](https://php.net) [![PHP 8.1\\+](https://img.shields.io/badge/PHP-8.1-blue?style=flat-square)](https://php.net) [![PHP 8.2\\+](https://img.shields.io/badge/PHP-8.2-blue?style=flat-square)](https://php.net) [![PHP 8.3\\+](https://img.shields.io/badge/PHP-8.3-blue?style=flat-square)](https://php.net) [![PHP 8.4\\+](https://img.shields.io/badge/PHP-8.4-blue?style=flat-square)](https://php.net) [![WordPress 5.5](https://img.shields.io/badge/WordPress-5.5-orange?style=flat-square)](https://wordpress.org) [![WordPress 6](https://img.shields.io/badge/WordPress-6.9-orange?style=flat-square)](https://wordpress.org)\n\n# Cloudbridge 2FA\n\nUncomplicated 2FA for WordPress with e-mail OTP and authenticator app support.\n\n## Description\n![Cloudbridge 2FA banner](/banner/Cloudbridge-2FA-banner-1544x500.png?raw=true \"Cloudbridge 2FA banner\")\n\nThis plugin provides uncomplicated 2FA functionality for WordPress. It will allow\nyou to require a second, one time password or OTP, code to be entered when certain\n(or all) users attempt to log in to WordPress.\n\nIt supports two factor methods:\n\n* six-digit codes sent by e-mail\n* standards-based authenticator apps using TOTP\n\nThe e-mail code has a limited lifetime (defaults to 15 minutes). Once a code has\nbeen consumed, it is considered invalid.\n\nAuthenticator app setup is handled from the user's own profile page. The plugin\nprovides a QR code, a manual setup key, and recovery codes for when the\nauthenticator app is not available.\n\nYou may configure that only certain roles are required to use 2FA, and it is\nrecommended that you enable 2FA for those users with privileged access.\n\nYou may also configure the plugin to allow certain roles to enable an OTP code\nbypass, which will set a cookie in that user's web browser. The cookies are\npartially based on the username, so several users can share the same browser,\nbut still be required to always enter the OTP code, or bypass it if the cookie\nis present.\n\nYou can add custom text to the OTP code entry form, and you can add custom text\nto the OTP code e-mail message.\n\nThe plugin can be configured to allow it to be handled/managed only by specific\nusers, thus making it harder for someone to accidentally or intentionally\ndeactivate it. The implemented solution for this is by no means waterproof. If\nsomeone, for example, has access to your WordPress installation by means of FTP\nor similar, the plugin files can be physically removed (or moved out of your\nWordPress installation), which basically deactivates the plugin as well.\n\n## Installation\n\nThis section describes how to install the plugin and get it working.\n\n1. Upload the contents of the `cloudbridge-2fa` folder to the `/wp-content/plugins/` directory\n2. Activate the plugin through the 'Plugins' menu in WordPress\n3. Configure the plugin settings\n\n## Is the plugin locale aware\n\nCloudbridge 2FA uses standard WordPress functionality to handle localization/locale. The native language localization of the plugin is English. It has been translated to Swedish by the author.\n\n## Are there any incompatibilities\n\nThis is a hard question to answer. There are no known incompatibilities.\n\n## Changelog\n\n### 2.0.1\n* Fixed a settings-page regression where saving one tab could unset values on another tab\n* Fixed the Bypass 2FA tab layout after the recent admin UI changes\n* Restored returning to the active settings tab after saving\n* Sent expired or stale login verification attempts back to the WordPress login screen so the user can start over cleanly\n\n### 2.0.0\n* Verified with PHP 7.4, 8.1, 8.2, 8.3, and 8.4\n* Added authenticator app support using standards-based TOTP\n* Added recovery codes for authenticator-enabled accounts\n* Added QR code and manual setup key support to the user profile\n* Reworked the admin settings so authenticator-app and e-mail OTP settings are easier to find\n* Hardened redirect handling in login and OTP completion flows\n* Added CSRF protection to configuration import\n\n### 1.0.5\n* Verified with WordPress 6.8 and 6.9\n\n### 1.0.4\n* Verified with WordPress 6.7\n* Verified with Plugin Check (PCP)\n* Corrected some checks for `uninstall.php` and made it more WP-CLI compatible\n \n### 1.0.3\n* Fix some incorrect links in plugin and `README.md`\n\n### 1.0.2\n* Fix of minor PHP warning\n\n### 1.0.1\n* Fix of minor PHP warning\n\n### 1.0.0\n* Initial release\n\n## Screenshots\n![Cloudbridge 2FA login screen](/screenshots/cloudbridge-2fa-screenshot-login.png?raw=true \"Cloudbridge 2FA login screen\")\n\n![Cloudbridge 2FA OTP code e-mail](/screenshots/cloudbridge-2fa-screenshot-email.png?raw=true \"Cloudbridge 2FA OTP e-mail\")\n\n## License\n\nPlease see [LICENSE](LICENSE) for a full copy of GPLv2\n\nCopyright (C) 2024-2026 [Joaquim Homrighausen](https://github.com/joho1968).\n\nThis file is part of Cloudbridge 2FA (CB2FA). Cloudbridge 2FA is free software.\n\nYou may redistribute it and/or modify it under the terms of the GNU General Public License version 2, as published by the Free Software Foundation.\n\nCloudbridge 2FA is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with the SCFA package. If not, write to:\n\n```\nThe Free Software Foundation, Inc.,\n51 Franklin Street, Fifth Floor\nBoston, MA  02110-1301, USA.\n```\n\n## Credits\n\nThe Cloudbridge 2FA Plugin was written by Joaquim Homrighausen while converting :coffee: into code.\n\nCloudbridge 2FA is sponsored by [WebbPlatsen i Sverige AB](https://webbplatsen.se) :sweden:\n\nCommercial support and customizations for this plugin is available from WebbPlatsen i Sverige AB in :sweden:\n\nIf you find this plugin useful, the author is happy to receive a donation, good review, or just a kind word.\n\nIf there is something you feel to be missing from this plugin, or if you have found a problem with the code or a feature, please do not hesitate to reach out to support@webbplatsen.se.\n\nThis plugin can also be downloaded from [code.webbplatsen.net](https://code.webbplatsen.net/wordpress/cloudbridge-2fa/) and [GitHub](https://github.com/joho1968/Cloudbridge-2FA)\n\nMore detailed documentation is available at [code.webbplatsen.net/documentation/cloudbridge-2fa](https://code.webbplatsen.net/documentation/cloudbridge-2fa/)\n\n### External references\n\nThese links are not here for any sort of endorsement or marketing, they're purely for informational purposes.\n\n* me; :monkey: https://joho.se and https://github.com/joho1968\n* WebbPlatsen; https://webbplatsen.se and https://code.webbplatsen.net\n* Kudos to Kev Quirk for [Simple CSS](https://simplecss.org/)\n* QR code setup on the authenticated profile page uses QR Code Generator for JavaScript by Kazuhiko Arase (MIT license)\n\nStay safe!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoho1968%2Fcloudbridge-2fa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoho1968%2Fcloudbridge-2fa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoho1968%2Fcloudbridge-2fa/lists"}