The Google Authenticator plugin for WordPress gives you two-factor authentication using the Google Authenticator app for Android/iPhone/Blackberry.
If you are security aware, you may already have the Google Authenticator app installed on your smartphone, using it for two-factor authentication on Gmail/Dropbox/Lastpass/Amazon etc.
The two-factor authentication requirement can be enabled on a per-user basis. You could enable it for your administrator account, but log in as usual with less privileged accounts.
If You need to maintain your blog using an Android/iPhone app, or any other software using the XMLRPC interface, you can enable the App password feature in this plugin,
but please note that enabling the App password feature will make your blog less secure.
Tobias Bäthge for his code rewrite and German translation.
Pascal de Bruijn for his “relaxed mode” idea.
Daniel Werl for his usability tips.
Dion Hulse for his bugfixes.
Aldo Latino for his Italian translation.
Kaijia Feng for his Simplified Chinese translation.
Alex Concha for his security tips.
Jerome Etienne for his jquery-qrcode plugin.
Sébastien Prunier for his Spanish and French translation.
- Make sure your webhost is capable of providing accurate time information for PHP/WordPress, ie. make sure a NTP daemon is running on the server.
- Install and activate the plugin.
- Enter a description on the Users -> Profile and Personal options page, in the Google Authenticator section.
- Scan the generated QR code with your phone, or enter the secret manually, remember to pick the time based one.
You may also want to write down the secret on a piece of paper and store it in a safe place.
- Remember to hit the Update profile button at the bottom of the page before leaving the Personal options page.
- That’s it, your WordPress blog is now a little more secure.
- Can I use Google Authenticator for WordPress with the Android/iPhone apps for WordPress?
Yes, you can enable the App password feature to make that possible, but notice that the XMLRPC interface isn’t protected by two-factor authentication, only a long password.
- I want to update the secret, should I just scan the new QR code after creating a new secret?
No, you’ll have to delete the existing account from the Google Authenticator app on your smartphone before you scan the new QR code, that is unless you change the description as well.
- I am unable to log in using this plugin, what’s wrong ?
The Google Authenticator verification codes are time based, so it’s crucial that the clock in your phone is accurate and in sync with the clock on the server where your WordPress installation is hosted.
If you have an Android phone, you can use an app like ClockSync to set your clock in case your Cell provider doesn’t provide accurate time information
Another option is to enable “relaxed mode” in the settings for the plugin, this will enable more valid codes by allowing up to a 4 min. timedrift in each direction.
- I have several users on my WordPress installation, is that a supported configuration ?
Yes, each user has his own Google Authenticator settings.
- During installation I forgot the thing about making sure my webhost is capable of providing accurate time information, I’m now unable to login, please help.
If you have SSH or FTP access to your webhosting account, you can manually delete the plugin from your WordPress installation,
just delete the wp-content/plugins/google-authenticator directory, and you’ll be able to login using username/password again.
- I don’t own a Smartphone, isn’t there another way to generate these secret codes ?
Yes, there is a webbased version here : http://gauth.apps.gbraad.nl/
Github project here : https://github.com/gbraad/html5-google-authenticator
- Can I create backupcodes ?
No, but if you’re using an Android smartphone you can replace the Google Authenticator app with Authenticator Plus.
It’s a really nice app that can import your existing settings, sync between devices and backup/restore using your sd-card.
It’s not a free app, but it’s well worth the money.
- Any known incompatabilities ?
Yes, the Man-in-the-middle attack/replay detection code isn’t compatible with the test/setup mode in the “Stop spammer registration plugin”,
please remember to remove the “Check credentials on all login attempts” checkmark before installing my plugin.
an excellent and (probably) an essential tool
Simple to install on a new wordpress site (see other reviews regarding workflow issues if adding to an existing site that already has users registered).
Only issue is that I also would like to use the officla WordPress android app to administer the site remotely (e.g. approve comments etc..) but because that doesnt provide the 2FA field, it means the login to the app fails (even if using correct username and password).
Ideal would be for WordPress to include this in the base release and update the App to enable 2FA unless a user has a reason to turn it off – that would make all wordpress blogs much safer but until then, will just have to use the browser version and stop using the mobile app – still, security is more important.
I don’t really know how one should login if for any reason the phone is missing or GA doesn’t work? The only solution would be removing the app?
And once I deactivated the plugin and it still would show the GA field.
This worked perfectly. I appreciate the extra security.
I can not get into my site with two authentication factor after activating this plugin.
The plugin works well. The only problem is when you activate it for your woocommerce customers, it won’t show anything. No QR code, no secret code!
Contributors & Developers
“Google Authenticator” is open source software. The following people have contributed to this plugin.Contributors
Interested in development?
- Security fix / compatability with WordPress 4.5
- Google chart API replaced with jquery-qrcode
- QR codes now contain a heading saying WordPress (Feature request by Flemming Mahler)
- Danish translation & updated .pot file.
- Plugin now logs login attempts recognized as Man-in-the-middle attacks.
- Man-in-the-middle attack protection added.
- Show warning before displaying the QR code.
- FAQ updated.
- Spaces in the description field should now work on iPhones.
- Some depricated function calls replaced.
- Code inputfield easier to use for .jp users now.
- Sanitize description field input.
- App password hash function switched to one that doesn’t have rainbow tables available.
- PHP notices occurring during app password login removed.
- Installation/FAQ section updated.
- Simplified Chinese translation by Kaijia Feng added.
- Tabindex on loginpage removed, no longer needed, was used by older WordPress installations.
- Inputfield renamed to “googleotp”.
- Defaultdescription changed to “WordPressBlog” to avoid trouble for iPhone users.
- Compatibility with Ryan Hellyer’s plugin http://geek.ryanhellyer.net/products/deactivate-google-authenticator/
- Must enter all 6 code digits.
- It’s now possible for an admin to hide the Google Authenticaator settings on a per-user basis. (Feature request by : Skate-O)
- Autocomplete disabled on code input field. (Feature request by : hiphopsmurf)
- Italian translation by Aldo Latino added.
- Bugfix, typo corrected and PHP notices removed. Thanks to Dion Hulse for his patch.
- Bugfix, Description was not saved to WordPress database when updating profile. Thanks to xxdesmus for noticing this.
- Usability fix, input field for codes changed from password to text type.
- The plugin now supports “relaxed mode” when authenticating. If selected, codes from 4 minutes before and 4 minutes after will work. 30 seconds before and after is still the default setting.
- Bugfix, now an App password can only be used for XMLRPC/APP-Request logins.
- Initial WordPress app support added (XMLRPC).
- Code cleanup
- Changed generation of secret key, to no longer have requirement of SHA256 on the server
- German translation
- Initial release