#はじめに
- Laravelにて、CRUD系のアプリを作っています。
- ユーザ回りの機能を実装し始めて、認証がうまくできないため困っています。
- Authファサードをつかえるようにして、Auth::attemptを利用するやり方を採用しています。
- ちなみに、「$php artisan make:auth」でログイン機能を作れることを後から知り、かつ
そのほうがセキュアな気もしますが、とりあえず始めてしまったのでこの方法でトライさせてください。
#コード
PHP
1//登録ページの処理、パスワードはハッシュ化しています 2public function store(Request $request){ 3 $name = $request->input('name'); 4 $email = $request->input('email'); 5 $password = Hash::make($request->input('password')); 6 $this->validate($request, [ 7 'name' => 'required|unique:user|max:255', 8 'email' => 'required|unique:user|max:60', 9 'password' => 'required|max:60' 10 ]); 11 DB::table('user') 12 ->insertGetId(['name' => $name, 'email' => $email, 'password' => $password]); 13 $request->session()->flash('flash', 'You are Registered Now'); 14 return redirect()->to('database/'); 15 } 16 17//認証ページの処理です 18public function authenticate(Request $request){ 19 $email = $request->input('email'); 20 $password = $request->input('password'); 21 $credidentials = ['email' => $email, 'password' => $password]; 22 if (Auth::attempt($credidentials)){ 23 $request->session()->flash('flash', 'Log in Completed'); 24 return redirect()->intended('database/'); 25 }else{ 26 $request->session()->flash('flash', 'Email or Password invalid'); 27 return redirect()->to('database/user/auth'); 28 } 29 } 30 31//認証ページのフォーム(auth.blade.php)です 32@extends('top') 33@section('content') 34<div> 35 <div> 36 <form action = "authenticate" method = "post"> 37 <li> <input type = "text" name = "email" placeholder = "Type Email"> </li> 38 <li> <input type = "password" name = "password" placeholder = "Password"> </li> 39 <input type = "hidden" name="_token" value="{{csrf_token()}}"> 40 <button type = "submit">Log in</button> 41 </form> 42 <a href = "{{ action( 'ArtistController@top' ) }}">Back to top</a> 43 </div> 44</div> 45@endsection
#実行結果
- auth.blade.phpからメールとパスを打つと、「Email or Password invalid」が表示される、つまりログインに失敗している
のですが、それがなぜなのかわかりません。
- メールとパスが一致していることは大前提としてあります。
実行の結果から、なぜ情報が一致しないのか、自分では調べてもいまいち掴めませんでしたので
お力添えいただけますと幸いです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/28 05:54 編集
2017/12/28 03:52
2017/12/28 04:07
2017/12/28 10:00