2017 © Pedro Peláez
 

library laravel-wp-user

Use WordPress for authentication, user managment in laravel app

image

calderawp/laravel-wp-user

Use WordPress for authentication, user managment in laravel app

  • Thursday, July 6, 2017
  • by Shelob9
  • Repository
  • 2 Watchers
  • 7 Stars
  • 37 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 3 % Grown

The README.md

laravel-wp-user

Use a WordPress site as the authentication provider for a Laravel app., (*1)

Also can act as a WordPress REST API client., (*2)

Goals and Status

  • Authenticate as a WordPress user from Laravel - done.
  • Provide an API client for querying the WordPress REST API from Laravel - done.
  • Provide a WordPress based middleware. - Next step

Usage

Setting Up WordPress

This library could use other authentication systems but only JWT is implimented., (*3)

Add WordPress Login To Your App

  • Config, (*4)

    • Publish config and set url for WordPress site or use WPUSERWPURL in your .env
    • URL must include /wp-json/ (or whatever) you use WITH trailing slash.
  • Add a login route, for example, (*5)

Route::post('/wp-login', function( \calderawp\WPUser\JWTAuthenticator $authenticator, \Illuminate\Http\Request $request ){
    if( $request->has( 'username' ) && $request->has( 'password' ) ){
        if( $authenticator->login( $request->input( 'username'), $request->input( 'password' ) ) ){
            $user = \calderawp\WPUser\Model\Model::fromAuth( $authenticator );
        }

        //return an error;
    }
});

NOTES: * This uses a User Model from the package. No migration is provided to save. * You could save the WP User in database, with token., (*6)

Example To Authenticate User

    //SUPER IMPORTANT to use a trialing slash after wp-json
    $wpApiUrl = 'https://roysivan.com/wp-json/';
    $authClient = \calderawp\WPUser\Factory::jwtAuthenticator( $wpApiUrl, [ 
        //args to pass to constructor of GuzzleHttp\Client
     ] );

    //BTW- in local testing, might want to set verify false
    // $authClient = \calderawp\WPUser\Factory::jwtAuthenticator( $wpApiUrl, [ 'verify' => false ] );


    //authenticate
    if( $authClient->login( 'josh', '12345' ) ){
        $api = \calderawp\WPUser\Factory::jwtAuthenitcated( $wpApiUrl, $authClient->getUser(), 
            [ 
                //args to pass to constructor of GuzzleHttp\Client
             ] 
        );
        $me = $api->me();
    }

License

Copyright 2017 CalderaWP LLC. Licensed under the terms of the GNU GPL V2+. Please share with your neighbor., (*7)

The Versions

06/07 2017

dev-master

9999999-dev

Use WordPress for authentication, user managment in laravel app

  Sources   Download

GPLv2+

The Requires

 

06/07 2017

0.2.0

0.2.0.0

Use WordPress for authentication, user managment in laravel app

  Sources   Download

GPLv2+

The Requires