Opa, estou fazendo a autenticação com a Facade Auth, e ao fazer o login sempre da usuário invalido.
Na documentação do Laravel fala que ao usar o Auth::attempt não precisa fazer o hash da senha pois ele faz automaticamente, porem nada da certo.
Segue o código:
arquivo UsersController.php (Cria o usuario)
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class UsersController extends Controller
{
public function create()
{
return view('users.create');
}
public function store(Request $request)
{
// pega todos os campos do formulario exceto o token
$data = $request->except(['_token']);
// gera um hash da senha para salvar no banco com o Facade Hash::make
$data['password'] = Hash::make($data['password']);
// cria o usuario no banco
$user = User::create($data);
// Faz o login dele
Auth::login($user);
return to_route('series.index');
}
}
arquivo LoginController.php (Faz o login)
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use function GuzzleHttp\Promise\all;
class LoginController extends Controller
{
public function index()
{
return view('login.index');
}
public function store(Request $request)
{
// dd($request->only(['email', 'password']));
if(!Auth::attempt($request->only(['email', 'password'])));
{
return redirect()->back()->withErrors(['Usuario ou senha inválidos'])->onlyInput('email');
}
return to_route('series.index');
}
}
Rotas:
Route::get('/login', [LoginController::class, 'index'])->name('login');
Route::post('/login', [LoginController::class, 'store'])->name('sign');
Route::get('/register', [UsersController::class, 'create'])->name('users.create');
Route::post('/register', [UsersController::class, 'store'])->name('users.store');