#php #laravel
#php #laravel
Вопрос:
Я надеюсь, что мой английский достаточно хорош, чтобы объяснить мою проблему. Я работаю с laravel 7 и пытаюсь реализовать свой собственный AuthController, потому что я не могу использовать миграции и не могу использовать таблицу «пользователи», потому что у меня реализована БД. Я прочитал всю документацию laravel об аутентификации и потратил несколько дней на чтение множества сообщений с этой проблемой, и я перепробовал все, но все равно не работает. Проблема заключается в методе попытки. Мой метод регистрации работает нормально, но я не могу войти в систему, на самом деле я пытался вручную ввести данные (вот почему учетные данные прокомментированы), чтобы найти проблему, но я не знаю, почему не работает
Мой метод Regsiter.
public function storeUser(Request $request)
{
//dd($request);
$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:administradores,ADMIN_Correo',
'password' => 'required|string|min:8|confirmed',
'password_confirmation' => 'required',
]);
Administrador::create([
'ADMIN_Nombre' => $request->name,
'ADMIN_Correo' => $request->email,
'ADMIN_Contrasena' => Hash::make($request->password),
]);
//return redirect('home');
}
Мой метод входа в систему.
public function authenticate(Request $request)
{
/*$request->validate([
'ADMIN_Correo' => 'required|string|email',
'ADMIN_Contrasena' => 'required|string',
]);*/
//$credentials = $request->only('ADMIN_Correo', 'ADMIN_Contrasena');
if (Auth::guard('admin')->attempt(['ADMIN_Correo' => 'edwin2@gmail.com
','ADMIN_Contrasena' => '12345678'])) {
return redirect()->intended('home');
}else{
echo 'error';
}
//return redirect('login')->with('error', 'Oppes! You have entered invalid credentials');
}
Мой config/auth.php файл
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
]
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => AppAdministrador::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => AppAdministrador::class,
],
],
Моя Модель
namespace App;
use IlluminateDatabaseEloquentModel;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
class Administrador extends Authenticatable
{
use Notifiable;
protected $table = 'administradores';
protected $primaryKey = 'ADMIN_Id';
public $timestamps = false;
public $incrementing = true;
protected $fillable = ['ADMIN_Nombre','ADMIN_Correo','ADMIN_Contrasena'];
protected $guard = 'admin';
public function getAuthPassword()
{
return $this->ADMIN_Contrasena;
}
}
ПРИМЕЧАНИЯ Поле для пароля:(ADMIN_Contrasena) имеет значение varchar 255