ПРОБЛЕМА
Я занят своим первым приложением Laravel, и хотя я вижу преимущества того, как все написано, мне трудно понять некоторые особенности поведения.
Когда я пытаюсь войти, меня перенаправляет на страницу входа. Кажется, что пользователь правильно аутентифицируется, но все равно перенаправляет на страницу входа.
ЧТО Я ИМЕЮ
Моя таблица пользователей выглядит так:
,---------,---------------,---------------,----------------,---------------,-----------,
| user_id | user_username | user_password | user_firtsname | user_lastname | user_type |
|---------|---------------|---------------|----------------|---------------|-----------|
| 1 | [email protected] | encrypted | Foo | Bar | farmer |
'---------'---------------'---------------'----------------'---------------'-----------'
Это мой файл маршрутов:
<?php
Route::get('/login', 'UsersController@login');
Auth::routes();
Route::get('/dashboard', 'HomeController@dashboard')->name('dashboard');
Route::get('/users/grid', 'UsersController@grid');
Route::resource('/users', 'UsersController');
Логинконтроллер.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* @var string
*/
protected $redirectTo = '/dashboard';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
/**
* @return string
*/
public function username()
{
return 'user_username';
}
/**
* @param Request $request
* @param $user
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function authenticated(Request $request, $user)
{
return $user->user_type === 'farmer' ? redirect('/dashboard') : redirect('/admin');
}
}
Пользователь.php
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* @var array
*/
protected $fillable = [
'user_username', 'user_firstname', 'user_lastname', 'user_password',
];
/**
* @var array
*/
protected $hidden = [
'user_password', 'remember_token',
];
/**
* @var bool
*/
public $timestamps = false;
/**
* @return mixed|string
*/
public function getAuthPassword()
{
return $this->user_password;
}
/**
* @return string
*/
public function getKey()
{
return $this->user_id;
}
}
ЧТО Я СДЕЛАЛ
Я прочитал различные вопросы на stackoverflow, но по какой-то причине я не могу заставить работать логин.
Я создал авторизацию, используя php artisan make:auth
. Я тоже пытался читать документацию, но все равно не повезло.
ВОПРОС
Как мне заставить его перенаправлять на панель инструментов после входа в систему? Что мне не хватает?
user_password
наpassword
. Потому что некоторые методы в laravel используют жестко заданное полеpassword
в качестве пароля. Вы сначала измените это, тогда оно будет работать. - person Lakhwinder Singh   schedule 14.10.2018password
на полеuser_password
- person Lakhwinder Singh   schedule 14.10.2018dd($user)
в вызовauthenticated
в своемLoginController
, он покажет аутентифицированного пользователя. - person Bird87 ZA   schedule 14.10.2018