2016-11-23 6 views
0

私はlaravel 5.2プロジェクトを持っており、認証を追加する必要がありますが、ユーザー名とパスワードを持つテーブルに接続する必要があります。私のテーブルでも、パスワードは暗号化されていません。既存のデータベーステーブルを使用してLaravelユーザー認証

login.blade.phpファイルをemailフィールドからusernameに変更しました。

またモデルをuser.php変更:

protected $table = 'LoginTable'; 

もAuthController.phpを変更します。この追加:

protected $username = 'username'; 

をしてバリデータを変更し、メソッドを作成します。

return Validator::make($data, [ 
     'username' => 'required|max:255', 
     'password' => 'required|min:6|confirmed', 
    ]); 
return User::create([ 
     'username' => $data['username'], 
     'password' => bcrypt($data['password']), 
    ]); 

しかし、私はlogin.Itのが言っカント「これらの資格情報は、当社の記録と一致しません。」。 問題の内容を確認するにはどうすればよいですか?誰もがこの問題で私を助けることができますか?

UPDATE

私は、パスワードをハッシュ化するためにパスワードの変更を持っているが、まだカントは、認証work.Itはまだ言ってます これらの資格情報は、当社の記録と一致しません。

私はデータベースに私はユーザー名とパスワードしか持たず、名前と電子メールは持っていないと言いたいと思います。

+0

ドキュメントを使いましたか?ここでは、ユーザーを手動で認証する方法を示します。 [docs](https://laravel.com/docs/5.2/authentication#authenticating-users) –

+0

手動認証はおそらく最良の方法ではありません。あなたがそれをすることで失う余分なものがたくさんあります。 –

答えて

1

暗号化されていないパスワードで既存のユーザーを認証しようとすると、機能しません。

Laravel authでは、検証をパスするためにすべてのパスワードを暗号化する必要があります。最初にデータベースを更新し、config/app.phpまたは.envファイルに定義されているのと同じ暗号鍵ですべてのパスワードを暗号化する必要があります。

大まかには、決してデータベースに平文のパスワードを保存しないでください。

+0

あなたのresposneに感謝します。他の変更は正しいですか?パスワードを暗号化するだけですか?もう1つ、app.phpで私は 'cipher' => 'AES-256-CBC'を見つけ、env.fileではAPP_KEY = base64:y6raQpepxEWDZVsX6gwhRuRvOxPoKaj1SJUvzzPV/U0 =を見つけました。私は必要なものはどれですか? –

+0

はい、他のすべての変更は正しいです。 config/app.phpの設定は、 'cipher'の設定です。デフォルトでは.envファイルから設定APP_KEYを読み込む 'key'という名前です。 –

+0

すべてのパスワードを 'bcrypt()'する必要があります。これはAPP_KEYを使用します。 – Hammerbot

関連する問題