Laravelで独自のクラスを使ってパスワードをハッシュ化する2019-12-02Laravelで独自のクラスを使ってパスワードをハッシュ化するlaravel今回は、以前行ったアプリケーション移行時の、ユーザーデータ移行について書こうと思います。ユーザーへの負担を避けるため、現行のパスワードを維持したいという要件があったことがキモです。ちなみに、移行したときのLaravelのバージョンは5.6.39です。この記事では一般的な認証の仕組みなどは説明しません。移行元は、ログインの仕組みを持つアプリケーション(Laravel製ではない)です。このアプリケーションのユーザーデータを、別アプリケーション(Laravel製)に移行しました。ここでいくつか注意点があります。移行後にパスワードの再設定は行わない(ユーザーへの負担を避けるため)移行後では同一アプリケーションで別認証(bcrypt)もある移行元ではアカウント名と、ハッシュ化(salt使用)されたパスワードを用いて認証している移行元ではパスワードのハッシュ値はPHP関数のhash_hmac()で生成している認証情報の読み書き・保存には、移行元・先ともにcookieでのセッションを使用するパスワードの再設定を行わないため、ハッシュ化のプロセスを移行元と全く同じにする必要があります。LaravelのデフォルトHashing(BcryptHasher)とは異なるプロセスなので、自作する必要がありました。パスワードチェックの変更デフォルトさてまず根幹の、認証部分の処理を見ましょう。$user->getAuthPassword());}これを見るとわかりますが、パスワードしか使っていませんね。saltを渡すよう変更する必要がありそうです。