Я новичок в Laravel. Я использую Laravel 6 для разработки медицинского приложения. Все хорошо работает на местном. Теперь я попытался протестировать свое приложение на сервере (Heroku). Экран входа в систему загружается хорошо, но когда я вставляю имя пользователя и пароль, приложение перезагружает страницу входа, и ничего не происходит.
Моя база данных хранится на db4free. net и, если я go на URL : myapp.herokuapp.com/register и я регистрирую нового пользователя, новый пользователь добавляется в базу данных, поэтому я думаю, что это не проблема подключения к базе данных. Я собираюсь добавить код, если он поможет вам понять, что происходит:
web. php:
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('auth.login');
});
Auth::routes();
Route::get('profile', 'ProfileController@index')->name('profile');
Route::put('profile-update', 'ProfileController@update')->name('profile.update');
Route::put('profile-update-password', 'ProfileController@updatePassword')->name('profile.update.password');
Route::group(['as'=>'admin.','prefix'=>'admin','namespace'=>'admin', 'middleware'=>['auth','admin']], function ()
{
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
Route::resource('user', 'UserController');
Route::resource('dosimeter', 'DosimeterController');
Route::resource('dosimeterref', 'DosimeterRefController');
Route::resource('room', 'RoomController');
Route::put('password-update/{id}', 'UserController@updatePassword')->name('password.update');
Route::put('password-reset/{id}', 'UserController@resetPassword')->name('password.reset');
});
Route::group(['as'=>'mphysicist.','prefix'=>'mphysicist','namespace'=>'mphysicist', 'middleware'=>['auth','mphysicist']], function ()
{
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});
Route::group(['as'=>'professional.','prefix'=>'professional','namespace'=>'professional', 'middleware'=>['auth','professional']], function ()
{
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});
LoginController. php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
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;
/**
* Where to redirect users after login.
*
* @var string
*/
//protected $redirectTo = '/';
protected $redirectTo;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
if(Auth::check() && Auth::user()->role->id == 1)
{
$this->redirectTo = route('admin.dashboard');
}
elseif (Auth::check() && Auth::user()->role->id == 2)
{
$this->redirectTo = route('mphysicist.dashboard');
}
else
{
$this->redirectTo = route('professional.dashboard');
}
$this->middleware('guest')->except('logout');
}
public function dni(){
return 'dni';
}
}
AdminMiddleware. php
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class AdminMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(Auth::check() && Auth::user()->role->id == 1)
{
return $next($request);
}
else
{
return redirect()->route('login');
}
}
}