I know there are several post regarding this, but the issue is that I have my field csrf_field()
in my form and it works perfectly in local.
When I run the application on the hosting
server the error appears. I checked the permissions, I excluded the login route in the VerifyCsrfToken.php and the login is successful, but when I redirect to another page the Auth::user()
becomes null .
Route file
Route::group(['prefix' => 'admin', 'middleware' => ['web']], function() {
// Admin Panel
Route::get('', function() {
dd(Auth::user());
//return view('admin.home');{
} );
Route::get('login', 'LoginController@view')->name('login');
Route::post('login', 'LoginController@login');
Route::get('home', 'AdminController@home')->name('admin-home');
Route::get('home/edit', 'AdminController@editHome')->name('edit-home');
Route::post('home/edit', 'AdminController@editHomeAction');
Route::get('marketing', 'AdminController@marketing')->name('admin-marketing');
Route::get('marketing/edit', 'AdminController@editMarketing')->name('edit-marketing');
Route::post('marketing/edit', 'AdminController@editMarketingAction');
Route::get('relaciones', 'AdminController@relaciones')->name('admin-relaciones');
Route::get('relaciones/edit', 'AdminController@editRelaciones')->name('edit-relaciones');
Route::post('relaciones/edit', 'AdminController@editRelacionesAction');
Route::get('users', 'AdminController@users')->name('admin-users');
Route::get('users/add', 'AdminController@addUser')->name('add-user');
Route::post('users/add', 'AdminController@editUserAction');
Route::get('users/edit/{$id}', 'AdminController@editUser')->name('edit-user');
Route::post('users/edit/{$id}', 'AdminController@editUserAction');
Route::get('users/my-account', 'AdminController@myAccount')->name('my-account');
Route::post('users/my-account', 'AdminController@myAccountEdit');
Route::get('subsections/{subsection}', 'AdminController@subsection');
Route::get('subsection/marketing/add', 'AdminController@addSubsectionMarketing')->name('add-subsection-marketing');
Route::post('subsection/marketing/add', 'AdminController@addSubsectionMarketingAction');
Route::get('subsection/relaciones/add', 'AdminController@addSubsectionRelaciones')->name('add-subsection-relaciones');
Route::post('subsection/relaciones/add', 'AdminController@addSubsectionRelaciones');
Route::get('subsection/marketing/{id}/edit', 'AdminController@editSubsectionMarketing')->name('edit-subsection-marketing');
Route::post('subsection/marketing/{id}/edit', 'AdminController@editSubsectionMarketingAction');
Route::get('subsection/relaciones/{id}/edit', 'AdminController@editSubsectionRelaciones')->name('edit-subsection-relaciones');
Route::post('subsection/relaciones/{id}/edit', 'AdminController@editSubsectionRelaciones');
});
Form
<!DOCTYPE html>
<html lang="en">
<head>
@section('page', 'Login | ')
@include('includes/head', ['page' => 'admin'])
</head>
<body>
<main>
<section class="flex-center login">
<form class="form-horizontal" action="{{ url('/admin/login') }}" method="POST">
{!! csrf_field() !!}
<div class="flex-center logo">
<img src="{{ asset('img/logo.svg')}}" alt="">
</div>
<div class="divider"></div>
<div class="form-group">
<div class="col-3 col-sm-12">
<label class="form-label" for="username">Username</label>
</div>
<div class="col-9 col-sm-12">
<input class="form-input" type="text" id="username" name="username" placeholder="Username">
</div>
</div>
<div class="form-group">
<div class="col-3 col-sm-12">
<label class="form-label" for="password">Password</label>
</div>
<div class="col-9 col-sm-12">
<input class="form-input" type="password" name="password" id="password" placeholder="********">
</div>
</div>
<div class="form-group">
<div class="col-4 col-mx-auto col-sm-12">
<input class="form-input c-hand btn btn-primary" type="submit" value="Login">
</div>
</div>
<!-- form structure -->
</form>
</section>
</main>
<script>
function loginValidation (event) {
// console.log(event);
let username = document.getElementById('username');
let password = document.getElementById('password');
if (username.innerHTML === null || username.innerHTML == "") {
// console.log('Usuario invalido');
event.preventDefault();
displayPrompt('username', 'Debe ingresar un usuario');
// return false;
}
if (password.innerHTML === null || password.innerHTML == "") {
// console.log('Contraseña inválida');
event.preventDefault();
displayPrompt('password', 'Debe ingresar una contraseña');
// return false;
}
// document.getElementById('username-prompt').classList.remove('show');
// document.getElementById('password-prompt').classList.remove('show');
}
function displayPrompt (target, msg) {
// let msgNode = document.createTextNode(msg);
switch (target) {
case 'username':
// console.log(document.getElementById('username-prompt'));
document.getElementById('username-prompt').innerHTML = msg;
document.getElementById('username-prompt').classList.add('show');
break;
default:
// console.log(document.getElementById('password-prompt'));
document.getElementById('password-prompt').innerHTML = msg;
document.getElementById('password-prompt').classList.add('show');
break;
}
}
// document.querySelector('#loginForm').addEventListener('submit', loginValidation, false);
// console.log(document.querySelector('#loginForm').onsubmit);
</script>
</body>
Driver
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\RedirectResponse;
class LoginController extends Controller
{
public function view() {
return view('admin/login');
}
public function login(Request $req) {
//dd('hola');
$user = $req->only('username', 'password');
if (Auth::attempt($user)) {
// Authentication passed...
return redirect('admin');
}
dd('invalido');
}
}