Попытка настроить пользовательскую аутентификацию в Laravel - PullRequest
0 голосов
/ 05 мая 2020

Итак, у меня нет опыта работы с Laraval, и я пытался создать Auth, который не использует таблицу Users по умолчанию. Я следил за некоторыми руководствами и в итоге получил собственный Auth, который, по крайней мере, не выдает ошибку неправильной базы данных или что-то вроде этого, но при попытке входа в систему продолжает выдавать ошибку неправильного пароля или имени пользователя.

Таблица, которую я пытаюсь использовать, называется usuaris , а столбцы для входа в систему: nomUsuari и contrasenya .

Это мой собственный файл аутентификации:

    <?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class customAuth extends Authenticatable
{
    use Notifiable;

    protected $table = 'usuaris';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'nomUsuari','contrasenya'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'contrasenya',
    ];


    public function getAuthPassword()
    {
      return $this->contrasenya;
    }
}

Auth. php conf:

 'defaults' => [
        'guard' => 'web',
        'passwords' => 'usuaris',
    ],


    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,
        ],

        'web' => [
            'driver' => 'session',
            'provider' => 'usuaris',
        ],

    ],


    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],

        'usuaris' => [
            'driver' => 'eloquent',
            'model' => App\customAuth::class,
        ],

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],


    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
            'throttle' => 60,
        ],

        'usuaris' => [
            'provider' => 'usuaris',
            'table' => 'password_resets',
            'expire' => 60,
        ],

    ],

И функция для проверки:

function checklogin(Request $request){
        $this->validate($request, [
            'nomUsuari' => 'required',
            'contrasenya' => 'required'
        ]);

        $user_data = array(
            'nomUsuari' => $request->get('nomUsuari'),
            'password' => $request->get('contrasenya')
        );

        //print_r($user_data);

        if(Auth::attempt($user_data)){
            return redirect('successlogin');
        } else {
            return back()->with('error', 'Datos incorrectos');
        }
    }

Изображение таблицы ususaris и пользователя, пытающегося использовать

1 Ответ

0 голосов
/ 05 мая 2020

Измените

$user_data = array(
            'nomUsuari' => $request->get('nomUsuari'),
            'password' => $request->get('contrasenya')
        );

на

$user_data = array(
            'nomUsuari' => $request->get('nomUsuari'),
            'password' => bcrypt($request->get('contrasenya'))
        );

и удалите

public function getAuthPassword()
    {
      return $this->contrasenya;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...