Я работаю над аутентификацией имени пользователя. Я думал, что мой LoginController работает отлично. Но когда я захожу на страницу и делаю вход в систему. Страница останется на странице входа. Я проверил свой код, когда я использую dd (Auth :: user ()) в моем HomeController. он всегда возвращает нулевое значение.
Я прочитал некоторые обсуждения на stackoverflow. Люди сказали, что я должен использовать это в конструкторе loginController.
$this->middleare(function($request,$next){
$this->user=Auth::user();
return $next($request)
})
но это не работает в моем проекте.
Я уверен, что единственная причина, по которой моя страница входа не может перенаправить на следующую страницу, заключается в том, что Auth :: user () имеет нулевое значение. Но я не знаю, как это исправить.
Может кто-нибудь мне помочь ??
LoginController.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\User;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Auth\Validator;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/index';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function authenticated(Request $request)
{
if (Auth::attempt(['username' => $request['username'], 'password' => $request['password']])) {
return redirect('/');
}
}
public function username()
{
return 'username';
}
protected function validateLogin(Request $request)
{
/*$this->validate($request, [
"user_name" => 'required', 'user_password' => 'required',
]);*/
$messages = [
'username.required' => 'Username harus diisi',
'username.unique' => 'Username sudah ada',
'password.required' => 'Tolong isi password terlebih dahulu',
'password.min' => 'Password harus diisi minimal 6 karakter.'
];
return $this->validate($request, [
'username' => ['required', 'string', 'max:150'],
'password' => ['required', 'string', 'min:6'],
], $messages);
}
}
HomeController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
dd(Auth::user()); //this return false
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('home');
}
}