Решено - Laravel 6 логин не работает с добавленными пользователями - PullRequest
0 голосов
/ 10 января 2020

Я использую Laravel 6, я создал проект с аутентификацией, и после того, как я создал двух пользователей с сеялкой, я хотел добавить пользователей с формой и могу войти с ними. Теперь, если я регистрируюсь с пользователями, созданными с помощью seed, это работает, если я пытаюсь войти с другими пользователями, это не работает. Вот коды: LOGIN CONTROLLER

 public function login(Request $request){   
    $input = $request->only('email', 'password');
    $this->validate($request, [
        'email' => 'required|email',
        'password' => 'required',
    ]);
    if(Auth::attempt($input))
    {
            return redirect()->route('home');
    }else{
        return redirect()->route('login')->with('error','Email-Address And Password Are Wrong.');
    }
}

USERS CONTROLLER

    <?php

    namespace App\Http\Controllers;
    use App\User;
    use DB;
    use App\Hour;
    use App\Project;
    use Illuminate\Http\Request;
    use Auth;

    class UsersController extends Controller
    {

        public function index(){
            $users = User::all();
            return view('users.index', compact('users'));
        }

        public function create(){
            return view ('users.create');
        }

        public function show(User $user){
            ret

urn view('users.show', compact('user'));
    }

    public function edit(User $user){
        return view('users.edit', compact('user'));
    }
    public function update(User $user){
        $messages = [
            'surnameU.required' => "COGNOME UTENTE: Campo obbligatorio",
            'surnameU.min' => "COGNOME UTENTE: Inserire almeno 2 caratteri",
            'surnameU.max' => "COGNOME UTENTE: Inserire al massimo 255 caratteri",
            'email.required' => "MAIL UTENTE: Campo obbligatorio",
            'email.email' => "MAIL UTENTE: Inserire un indirizzo valido",
            'email.unique' => "MAIL UTENTE: Indirizzo già esistente",
            'password.required' => "PASSWORD UTENTE: Campo obbligatorio",
            'password.min' => "PASSWORD UTENTE: Inserire almeno 4 caratteri",
            'password.max' => "PASSWORD UTENTE: Inserire al massimo 8 caratteri",
        ];
        $user->update(request()->validate([
            'nameU'=>'',
            'surnameU'=> 'bail|required|min:2|max:255',
            'email' => 'bail|required|email|unique:users,email,' . $user->id,
            'password' => 'bail|required|min:4|max:8',
            'is_admin' => 'required'
        ], $messages));
        return redirect('/users');
    }

    public function destroy(User $user){
        $user->delete();
        return redirect('/users');
    }

    public function store(){
        $messages = [
            'surnameU.required' => "COGNOME UTENTE: Campo obbligatorio",
            'surnameU.min' => "COGNOME UTENTE: Inserire almeno 2 caratteri",
            'surnameU.max' => "COGNOME UTENTE: Inserire al massimo 255 caratteri",
            'email.required' => "MAIL UTENTE: Campo obbligatorio",
            'email.email' => "MAIL UTENTE: Inserire un indirizzo valido",
            'email.unique' => "MAIL UTENTE: Indirizzo già esistente",
            'password.required' => "PASSWORD UTENTE: Campo obbligatorio",
            'password.min' => "PASSWORD UTENTE: Inserire essere composto da almeno 4 caratteri",
            'password.max' => "PASSWORD UTENTE: Inserire al massimo 8 caratteri",
        ];
        $attributes = request()->validate([
           'nameU'=>'',
           'surnameU'=> 'bail|required|min:2|max:255',
           'email' => 'bail|required|email|unique:users,email',
           'password' => 'bail|required|min:4|max:8',
           'is_admin' => 'required'
        ], $messages);
        User::create($attributes);
        return redirect('/users');
    }

    // public function getUser(){
    //     $projects = DB::select('SELECT * FROM projects, users WHERE ? = projects.user_id AND users.id = projects.user_id', [Auth::user()->id]);
    //     $hours = Hour::all();
       //unique:table, campo
    //     return view('/others/create',compact('projects', 'hours'));
    // }
}

CREATE FORM

 <form method="POST" action="/users">
                        @csrf
                        <div>
                            <label><b>NOME UTENTE</b><br></label>
                            <input type="text" name="nameU" placeholder="Nome Utente" class="input {{$errors->has('nameU') ? 'is-danger' : ''}}" value="{{old('nameU')}}">
                        </div>
                        <div>
                            <label><b>COGNOME UTENTE</b><br></label>
                            <input type="text" name="surnameU" placeholder="Cognome Utente" class="input {{$errors->has('surnameU') ? 'is-danger' : ''}}" value="{{old('surnameU')}}"> 
                        </div>
                        <div>
                            <label><b>E-MAIL UTENTE</b><br></label>
                            <input type="email" name="email" placeholder="Mail Utente" class="input {{$errors->has('email') ? 'is-danger' : ''}}" value="{{old('email')}}">
                        </div>
                        <div>
                            <label><b>AMMINISTRATORE</b><br></label>
                            <input type="radio" name="is_admin" value="1" class="input {{$errors->has('is_admin') ? 'is-danger' : ''}}"> <b>Si</b> &nbsp;
                            <input type="radio" name="is_admin" value="0" class="input {{$errors->has('is_admin') ? 'is-danger' : ''}}" checked> <b>No </b>&nbsp;
                        </div>
                        <div>
                            <label><b>PASSWORD</b><br></label>
                            <input type="password" name="password" placeholder="Password utente" class="input {{$errors->has('password') ? 'is-danger' : ''}}" value="{{old('password')}}"><br>
                        </div>
                        <br>
                        <div>
                            <button type="submit" class="btn btn-secondary"><b>AGGIUNGI</b></button>
                        </div>
                    </form> 

ЧАСТЬ web.php

Auth::routes(['register' => false]);

Route::get('/home', 'HomeController@index')->name('home');

ДОМАШНИЙ КОНТРОЛЛЕР:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
class HomeController extends Controller
{
  /**
   * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('auth');
}

/**
 * Show the application dashboard.
 *
 * @return \Illuminate\Contracts\Support\Renderable
 */
public function index()
{
    return view('home');
}

}

SEEDER

public function run()
{
    $user = [
        [
           'nameU'=>'Admin',
           'surnameU' => 'Admin',
           'email'=>'admin@itsolutionstuff.com',
            'is_admin'=>'1',
           'password'=> bcrypt('123456'),
        ],
        [
           'nameU'=>'User',
            'surnameU' => 'User',
           'email'=>'user@itsolutionstuff.com',
            'is_admin'=>'0',
           'password'=> bcrypt('123456'),
        ],
    ];
    foreach ($user as $key => $value) {
        User::create($value);
    }
}

Что я делаю не так? Я полагаю, это создание пользователя или магазина, но я не уверен, Спасибо, все могут помочь мне

Ответы [ 2 ]

1 голос
/ 10 января 2020

вам нужно хешировать свой пароль, чтобы вы могли добавить эту одну строку в ваш код и обновить ваш код около оператора create.

$attributes->password = Hash::make($attributes->password);
User::create($attributes);

Пожалуйста, отметьте в вашем коде $ атрибуты содержат массив или объект. если это объект, используйте приведенный выше код. другое разумное использование ниже кода

$attributes['password'] = Hash::make($attributes['password']);
User::create($attributes);
0 голосов
/ 10 января 2020

Пожалуйста, используйте bcrypt, чтобы иметь sh пароль перед сохранением в базе данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...