withfatpanda/auth-plugin-wordpress

Social login and registration, built with Bamboo and powered by Laravel Socialite

1.2.0 2017-04-02 01:04 UTC

This package is not auto-updated.

Last update: 2024-10-26 20:21:04 UTC


README

Packagist Patreon

This project is a work in progress. It should be considered an unstable experiment until otherwise advertised herein—not for production use. Thank you.

This plugin expands WordPress' core authentication features:

Features in our roadmap:

  • Log in via one-time links sent to e-mail (i.e., Magic Links)
  • Designate which roles are given to Users when they register
  • Protect your site from spam and abuse with reCAPTCHA
  • Two-factor authentication via SMS

This plugin is free to use in any project (public, private, non-profit and for-profit; dual licensed GPLv2 and MIT).

Requirements

  • PHP >= 5.6.4
  • WordPress >= 4.0
  • Bedrock

Installation

Use Composer to add this plugin as a dependency to your Bedrock-based WordPress installation:

composer require withfatpanda/auth-plugin-wordpress

Configuration

For each third-party service you wish to employ in authentication, you will need a driver, a client ID, and a client secret.

Out of the box, this plugin makes available six drivers: facebook, twitter, linkedin, google, github, and bitbucket.

Note: In addition to these built-in drivers, there are almost 100 socialite drivers available through the community-driven Socialite Providers project, but to use any one of them, you must do some additional setup work (see Using Third-Party Providers below).

For each provider you wish to enable for authentication:

  1. Create a relationship with the provider; for example, if you want to enable Facebook as a login provider, you must first create a Facebook app. This process will be slightly different for each provider, and is beyond the scope of this documentation. Good luck!

  2. Get the public ID and secret key for each of your apps; again, this is outside the scope of this documentation.

  3. Install these values into your Bedrock environment as follows:

SERVICES_FACEBOOK_CLIENT_ID=Public ID
SERVICES_FACEBOOK_CLIENT_SECRET=Secret Key

Where FACEBOOK should be the name of the driver you're configuring.

  1. Also in your Bedrock environment, you will need to install a list of the drivers you are using, as follows:
SOCIALITE_PROVIDERS=facebook,twitter,google
  1. If you haven't done so yet, activate the plugin!
wp plugin activate auth-plugin-wordpress
  1. Flush your cached rewrite rules; this plugin adds two rewrite rules—one for inititing the OAuth flow, and another for handling the response from the auth providers. You can flush your rewrite rules with WP-CLI, as follows:
wp rewrite flush

Using Third-Party Providers

To be written.

About This Project

This plugin is the first to be built with the illuminate-wordpress project.

illuminate-wordpress, powered by the Laravel Framework, provides developers with an expressive, beautiful syntax for building faster for WordPress. Extending WordPress' REST API, defining custom data types and taxonomies, querying the database, and much more are all made easier through a semantic, object-oriented API. The objective of illuminate-wordpress is to allow the entire community of Laravel developers to fall in love with WordPress the way that we have fallen in love with Laravel.

This project in particular depends heavily on Laravel Socialite—a library that handles almost all of the boilerplate social authentication code that all developers dread writing.

About Fat Panda

Fat Panda is a software product consultancy located in Winchester, VA. We specialize in Laravel, WordPress, and Ionic. No matter where you are in the development of your product, we'll meet you there and work with you to propel you forward.

Contributing

If you run into a problem using this plugin, please open an issue.

If you want to help make this plugin amazing, check out the help wanted list.

If you'd like to support this and the other open source projects Fat Panda is building, please join our community of supporters on Patreon.