Fala galera
Estou criando uma aplicação no laravel em que eu não estou usando a tabela de Users padrão, eu criei duas tabelas de usuário sendo de Admin e Clientes.
A questão é que quando eu vou fazer o Auth::attempt aparentemente não esta criptografando a senha.
Eu já mudei o arquivo config/auth.php com os novos guards, não sei se devo fazer mais configurações
Arquivo config/auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
'cliente' => [
'driver' => 'session',
'provider' => 'cliente',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => env('AUTH_MODEL', App\Models\User::class),
],
'admin' => [
'driver' => 'eloquent',
'model' => env('AUTH_MODEL', App\Models\Admin::class),
],
'cliente' => [
'driver' => 'eloquent',
'model' => env('AUTH_MODEL', App\Models\Cliente::class),
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
Model Admin.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class Admin extends Authenticatable
{
use HasFactory, Notifiable;
protected $connection = 'oracle';
protected $table = 'ARQATD_UNIADM';
protected $primaryKey = 'ADMIN_ID';
protected $fillable = [
'ADMIN_ID',
'NOME_ADM',
'EMAIL_ADM',
'SENHA_ADM',
'SUPER_ADM',
'ATIVO_ADM',
];
protected $hidden = [
'SENHA_ADM'
];
protected function casts(): array
{
return [
'SENHA_ADM' => 'hashed',
];
}
public function getAuthPassword() {
return $this->SENHA_ADM;
}
}
Seeder para incluir o usuario
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\DB;
class UNIADM_Seeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
DB::table ('ARQATD_UNIADM')->insert([
'NOME_ADM' => 'Usuario',
'EMAIL_ADM' => 'email-example@hotmail.com',
'SENHA_ADM' => Hash::make('123'),
'SUPER_ADM' => 1,
'ATIVO_ADM' => 1
]);
}
}
Arquivo LoginController.php
<?php
namespace App\Http\Controllers;
use App\Http\Requests\LoginRequest;
use Illuminate\Http\Request;
use RealRashid\SweetAlert\Facades\Alert;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class LoginController extends Controller
{
public function indexAdm()
{
return view('login/index', ['tpLogin' => 'adm']);
}
public function indexCli()
{
return view('login/index', ['tpLogin' => 'cli']);
}
public function logarAdm(LoginRequest $request)
{
if (!Auth::guard('admin')->attempt(['EMAIL_ADM' => $request->input('email'), 'SENHA_ADM' => $request->input('senha')]))
return to_route('login-adm')->withErrors('Usuário e/ou senha inválidos')->withInput();
return to_route('painel/home');
}
public function logarCli()
{
//
}
}
Quando faço o login, esse é o select que o laravel esta fazendo:
Percebe que ele não esta transformando a senha em HASH pelo metodo Auth::attempt