Use a custom facade rather than overwriting Laravel's hasher
Diff
src/Facades/WPHash.php | 23 +++++++++++++++++++++++
src/Hashing/HashServiceProvider.php | 9 +++++----
src/Hashing/WordpressHasher.php | 6 ++----
src/Providers/KoseligServiceProvider.php | 4 ++++
4 files changed, 34 insertions(+), 8 deletions(-)
@@ -0,0 +1,23 @@
<?php
namespace Koselig\Facades;
use Illuminate\Support\Facades\Facade;
/**
* Facade for {@link \Koselig\Hashing\WordpressHasher}.
*
* @see \Koselig\Hashing\WordpressHasher
* @author Jordan Doyle <jordan@doyle.wf>
*/
class WPHash extends Facade
{
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor()
{
return 'wphash';
}
}
@@ -4,7 +4,8 @@ namespace Koselig\Hashing;
use Illuminate\Support\ServiceProvider;
/**
* Replace Laravel's hasher with Wordpress'.
* Provide 'wphash' service to allow for hashing using Wordpress'
* hashing methods.
*
* @author Jordan Doyle <jordan@doyle.wf>
*/
@@ -24,8 +25,8 @@ class HashServiceProvider extends ServiceProvider
*/
public function register()
{
$this->app->singleton('hash', function () {
return new WordpressHasher;
$this->app->singleton('wphash', function () {
return new WordpressHasher();
});
}
@@ -36,6 +37,6 @@ class HashServiceProvider extends ServiceProvider
*/
public function provides()
{
return ['hash'];
return ['wphash'];
}
}
@@ -22,8 +22,6 @@ class WordpressHasher implements HasherContract
*/
public function make($value, array $options = [])
{
dd(wp_hash_password($value));
return wp_hash_password($value);
}
@@ -49,7 +47,7 @@ class WordpressHasher implements HasherContract
*/
public function needsRehash($hashedValue, array $options = [])
{
return false;
// if the hashed value is md5 it needs rehashing.
return strlen($hashedValue) <= 32;
}
}
@@ -3,6 +3,7 @@ namespace Koselig\Providers;
use Illuminate\Support\ServiceProvider;
use Koselig\Auth\AuthServiceProvider;
use Koselig\Hashing\HashServiceProvider;
use Koselig\Routing\RoutingServiceProvider;
/**
@@ -28,5 +29,8 @@ class KoseligServiceProvider extends ServiceProvider
// Authentication service provider
$this->app->register(AuthServiceProvider::class);
// Hashing service provider
$this->app->register(HashServiceProvider::class);
}
}