2017-02-23 16 views
1

認証試行に失敗しましたが、私のケースは異なるようです。私のパスワードは平文のままですので、まだ開発段階です。私はログインしようとしますが、私は間違っているのでログインページにリダイレクトされます。Laravel 5.4の認証試行に失敗しました。

エラーメッセージには、ユーザー名とパスワードが一致していませんが、ddは電子メールとパスワードの両方が正しいことを示しています。

このエラーの原因は何ですか? PS:それはlaravel

web.php

Route::post('/login', '[email protected]'); 
Route::get('/', '[email protected]'); 

AuthController

public function auth() 
{ 
    //dd($request); 

    // attempt to login the user 
    if (! auth()->attempt(request(['email', 'password']))) { 

     return back()->withErrors([ 
      'message' => 'Username/Password does not macth' 
     ]); 
    } 

    return redirect('/'); 
} 

のPostController

public function index() 
{ 
    $posts = Post::latest()->limit(3)->get(); 

    return view('post.index', compact('posts')); 
} 
+0

にハッシュされたパスワードを持っているので、後にパスワードを変更、パスワードが保存され、データベース内のハッシュを持っているか、見えていますか? – dparoli

+0

パスワードがハッシュされていません。それはプレーンテキストである – Mena

答えて

4

ユーザーコードでこのコードを使用すると、必要に応じてパスワードが自動的にハッシュされます。

public function setPasswordAttribute($value) 
{ 
    if(\Hash::needsRehash($value)) { 
     $value = \Hash::make($value); 
    } 
    $this->attributes['password'] = $value; 
} 

と、データベース

+0

多くのおかげで...そのコードが魔法を働かせました。別のテストプロジェクトでmake:authを使って認証する方法を学びます。 – Mena

+0

Im代替モデルをユーザーモデルに使用しています。既存モデルを参照し、デフォルトユーザーセクションのconfig/auth.phpにモデルテーブルと代替テーブルの両方を定義しています。パスワードがまだハッシュ化されていないので、この新しいモデルでこの指定されたメソッドをどのように活用できますか? – blamb

+0

あなたが新しい質問を投稿した方が、これを参考にコメントがあなたのケースを調べるのに適切な場所ではないということです。 – dparoli

0

ない私は理解しておくと作業初めてです...しかし、あなたはしている場合Laravel認証(php artisan make:auth)を使用すると、パスワードをプレーンテキストで保存することはありません。だから私はあなたはdbに直接パスワードを設定しています。dbcryptハッシュで保存されていると仮定してdbのパスワードフィールドをチェックするので動作しません。

デフォルトの認証を使用している場合あなたのユーザーアカウントを作成するために登録フォームを使用してください

laravelで初めて作業するので、私はhttps://laracasts.com/series/laravel-from-scratch-2017/episodes/17を見てみることをお勧めします。これはauthの概念をカバーしています。 auth

+0

ありがとう。私は問題が現在プレーンテキストのパスワードフィールドにあると思う。ところで、私はlaracastチュートリアルに従っていたので、make:authを使用しませんでした。私はそれを見回すことができます。次回は、make:auth – Mena

関連する問題