Auth::attempt always return false and i couldn't solve it using other questions, here

95 Views Asked by At

When I dd the request, it has email and password. but attempt doesn't work

class AdminController extends Controller
    {

    public function login(Request $request)
    {
        //dd($request->email , $request->password);
        if ($request->isMethod('post')){
            if (Auth::attempt(['email'=>$request->email, 'password'=>$request->password, 'admin'=>'1'])){
                echo 'success'; die();
            }
            else{
                echo 'failed';  die();
            }
        }
        return view('admin.admin_login');
    }

}

When user registers data is stored like this:

 protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'university'=>$data['university'],
        'grade'=>$data['grade'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

Please help !

2

There are 2 best solutions below

3
Faizan Fayaz On

You need to use $request with input as show in the following code. Here is the doc https://laravel.com/docs/5.6/requests#accessing-the-request

(Auth::attempt(['email'=>$request->input('email'), 'password'=>$request->input('password'), 'admin'=>'1']))
0
Meysam Mahmoodi On
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    /**
     * Handle an authentication attempt.
     *
     * @param  \Illuminate\Http\Request $request
     *
     * @return Response
     */
    public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');

        if (Auth::attempt($credentials)) {
            // Authentication passed...
            return redirect()->intended('dashboard');
        }
    }
}

This is an example from Larvel document. ensure that your password is correct and it hasn't hashed before. also you can hard-code your username and password for ensure your data is correct.