Description
Ultra minimal plugin to let your users login to WordPress applications using their Google accounts. No more remembering hefty passwords!
Initial Setup
-
Create a project from Google Developers Console if none exists.
-
Go to Credentials tab, then create credential for OAuth client.
- Application type will be Web Application
- Add
YOUR_DOMAIN/wp-login.php
in Authorized redirect URIs
-
This will give you Client ID and Secret key.
-
Input these values either in
WP Admin > Settings > WP Google Login
, or inwp-config.php
using the following code snippet:define( 'WP_GOOGLE_LOGIN_CLIENT_ID', 'YOUR_GOOGLE_CLIENT_ID' );
define( 'WP_GOOGLE_LOGIN_SECRET', 'YOUR_SECRET_KEY' );
Browser support
These browsers are supported. Note, for example, that One Tap Login is not supported in Safari.
How to enable automatic user registration
You can enable user registration either by
– Enabling Settings > WP Google Login > Enable Google Login Registration
OR
- Adding
define( 'WP_GOOGLE_LOGIN_USER_REGISTRATION', 'true' );
in wp-config.php file.
Note: If the checkbox is ON then, it will register valid Google users even when WordPress default setting, under
Settings > General Settings > Membership > Anyone can register checkbox
is OFF.
Restrict user registration to one or more domain(s)
By default, when you enable user registration via constant WP_GOOGLE_LOGIN_USER_REGISTRATION
or enable Settings > WP Google Login > Enable Google Login Registration, it will create a user for any Google login (including gmail.com users). If you are planning to use this plugin on a private, internal site, then you may like to restrict user registration to users under a single Google Suite organization. This configuration variable does that.
Add your domain name, without any schema prefix and www,
as the value of WP_GOOGLE_LOGIN_WHITELIST_DOMAINS
constant or in the settings Settings > WP Google Login > Whitelisted Domains
. You can whitelist multiple domains. Please separate domains with commas. See the below example to know how to do it via constants:
define( 'WP_GOOGLE_LOGIN_WHITELIST_DOMAINS', 'example.com,sample.com' );
Note: If a user already exists, they will be allowed to login with Google regardless of whether their domain is whitelisted or not. Whitelisting will only prevent users from registering with email addresses from non-whitelisted domains.
Hooks
For a list of all hooks please refer to this documentation.
wp-config.php parameters list
-
WP_GOOGLE_LOGIN_CLIENT_ID
(string): Google client ID of your application. -
WP_GOOGLE_LOGIN_SECRET
(string): Secret key of your application -
WP_GOOGLE_LOGIN_USER_REGISTRATION
(boolean) (optional): Settrue
If you want to enable new user registration. By default, user registration defers toSettings > General Settings > Membership
if constant is not set. -
WP_GOOGLE_LOGIN_WHITELIST_DOMAINS
(string) (optional): Domain names, if you want to restrict login with your custom domain. By default, it will allow all domains. You can whitelist multiple domains.
BTW, We’re Hiring!
Screenshots
Blocks
This plugin provides 1 block.
- Log in with Google
Installation
- Upload
plugin-name.php
to the/wp-content/plugins/
directory - Activate the plugin through the ‘Plugins’ menu in WordPress
- Follow “Setup” instructions in ReadMe to configure credentials from Google Developers Console.
FAQ
-
Reporting a bug 🐞
-
Before creating a new issue, do browse through the existing issues for resolution or upcoming fixes.
If you still need to log an issue, making sure to include as much detail as you can, including clear steps to reproduce the issue, if possible.
-
Creating a pull request
-
Want to contribute a new feature? Start a conversation by logging an issue.
Once you’re ready to send a pull request, please run through the following checklist:
-
Browse through the existing issues for anything related to what you want to work on. If you don’t find any related issues, open a new one.
-
Fork this repository.
-
Create a branch from
develop
for each issue you’d like to address and commit your changes. -
Push the code changes from your local clone to your fork.
-
Open a pull request and that’s it! We’ll respond with feedback as soon as possible (Isn’t collaboration a great thing? 😌)
-
Once your pull request has passed final code review and tests, it will be merged into
develop
and be in the pipeline for the next release. Props to you! 🎉
-
-
Unit testing
-
-
Clone the plugin from repository.
-
Run
composer install && composer tests:unit
to run unit tests.
-
Reviews
Contributors & Developers
“Log in with Google” is open source software. The following people have contributed to this plugin.
Contributors“Log in with Google” has been translated into 5 locales. Thank you to the translators for their contributions.
Translate “Log in with Google” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.3.2
- Compatible with PHP 8.1
- Compatible with WordPress latest version 6.3.1
1.3.1
- Maintenance release: Updated minimum requirements.
1.3.0
- Feature: Gutenberg block for Login button.
- Feature: Save user first name and last name on registration.
- Add: PHP 8.0 compatibility.
- Add: Added hook after user authentication.
- Add: Added hook after user is logged-in.
- Fix: set login cookie with shortcode display.
- Fix: Redirection back to login page issue.
- Updated npm packages and laravel-mix.
1.2.2
- Maintenance release. Requires PHP >= 7.4.
1.2.1
- Feature: Provide filter for client arguments: rtcamp.google_client_args
1.2
- Feature: One-Tap Login setting for supported browsers.
1.1
- Feature: Add shortcode
[google_login]
with optional attributes:[google_login button_text="Login with Google" force_display="no" redirect_to="https://example.url/page"]
. - Feature: Replace third-party oAuth client with custom GoogleClient class.
- Fix: Identification of state value, whether a given oAuth login is relevant to this plugin.
- Remove: Google oAuth library from composer.
1.0.14
- Revert Login with GitHub state fix.
1.0.13
- Fix login issue related to oAuth state.
1.0.12
- Fix conflict with Login with GitHub plugin.
1.0.11
- Add ‘login_with_google/client_arguments’ filter for Google_Client arguments.
1.0.10
- Fix issue where JS/CSS were not loading.
1.0.9
- Initial release.
1.3.1
- Maintenance release: Updated minimum requirements.