2017-08-27 11 views
0

Laravelでauthのパスワード暗号化アルゴリズムを変更する方法を教えてください。Laravel 5.4パスワードの暗号化方法を変更する

protected function create(array $data) 
    { 
     return User::create([ 
      'username' => $data['username'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
     ]); 
    } 

と私はここにbcryptの機能を変更することができますが、ログインは私が作る私のカスタムハッシュアルゴリズムでパスワードを確認する方法: 私はレジスタコントローラであり、この機能があることがわかり?

答えて

0

は、あなたがあなた自身のHashServiceProvider(そのサービスプロバイダ)を作成するので、あなた自身を作成するために職人を使用する必要が

$ artisan make:provider HashServiceProvider 

今すぐ(株式HashServiceProviderの体のほとんどをコピーします(同じオリジナルとしてそれを呼び出すことができます)ストックは\Illuminate\Hashing\HashServiceProvider.phpにあります)、名前空間とインポートを修正します。今度はconfig/app.phpに行き、HashServiceProviderを見つけ、あなた自身のサービスプロバイダの在庫HashServiceProviderを変更してください。

これで、独自のハッシュ関数を作成(実装)する必要があります。あなたは、2つのオプションがあります。

A.この方法の

<?php 
namespace Your\Namespaced\Hasher; 
use Illuminate\Hashing\BcryptHasher as OriginalHasher; 
class BcryptHasher extends OriginalHasher 
{...} // and change what you need 

例はKyslik/django-bcryptリポジトリ

B.で見つけることができ、元のBcryptHasherを拡張する新しいクラスを作成し、実装をHasher interface

<?php 
namespace Your\Namespaced\Hasher; 
use Illuminate\Contracts\Hashing\Hasher; 
class MyHasher implements Hasher {...} // IDE should scream at you with methods you need to implement 

最後に、サービスプロバイダ(HashServiceProvider)のregister()メソッドを変更して実装を返しますハッシングの

$ composer dump-autoloadを実行して、あなた自身の光沢のあるハッシングを楽しむことができます。

関連する問題