Laravel 6:作曲家更新后,身份验证登录显示空白屏幕.没有任何解决方案是有帮助的,即使是恢复的生产副本或新的项目



好吧,我真的到了绳子的尽头。在作曲家更新和对相当不相关的东西进行更多提交之后,我注意到登录将我发送到一个空白屏幕,而不是应该回到主页。我正在使用调试栏,但这也没有加载。

我还原更改,没有效果。我恢复了作曲家更新,没有效果。我重新安装了XAMPP,检查了所有设置,没有效果。我复制了生产服务器的代码,这只是几个提交滞后,仍然没有效果。我从一个新的Laravel应用程序中获取了composer.json,但仍然没有效果。我安装了一个全新的项目,使用这些命令添加身份验证脚手架,运行 NPM,调整 .env 以使用旧数据库(仍然使用正确的字段名称(,现在它给了我一个 419 - 页面过期?。


composer require laravel/ui --dev
php artisan ui vue --auth

所以我正在使用 Laravel Auth 脚手架,我承认我对它的工作原理并不熟悉。

我在这里使用路由("登录"(传递登录控制器的构造

/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}

然后内核将我与这个中间件发送到App\Http\Middleware\RedirectIfAuthenticated

<?php
namespace AppHttp;
use IlluminateFoundationHttpKernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
IlluminateFoundationHttpMiddlewareCheckForMaintenanceMode::class,
IlluminateFoundationHttpMiddlewareValidatePostSize::class,
AppHttpMiddlewareTrimStrings::class,
IlluminateFoundationHttpMiddlewareConvertEmptyStringsToNull::class,
AppHttpMiddlewareTrustProxies::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
AppHttpMiddlewareEncryptCookies::class,
IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class,
IlluminateSessionMiddlewareStartSession::class,
// IlluminateSessionMiddlewareAuthenticateSession::class,
IlluminateViewMiddlewareShareErrorsFromSession::class,
AppHttpMiddlewareVerifyCsrfToken::class,
IlluminateRoutingMiddlewareSubstituteBindings::class,
AppHttpMiddlewareLocalization::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => IlluminateAuthMiddlewareAuthenticate::class,
'auth.basic' => IlluminateAuthMiddlewareAuthenticateWithBasicAuth::class,
'bindings' => IlluminateRoutingMiddlewareSubstituteBindings::class,
'cache.headers' => IlluminateHttpMiddlewareSetCacheHeaders::class,
'can' => IlluminateAuthMiddlewareAuthorize::class,
'guest' => AppHttpMiddlewareRedirectIfAuthenticated::class,
'permission' => AppHttpMiddlewareCheckPermission::class,
'role' => AppHttpMiddlewareCheckRole::class,
'signed' => IlluminateRoutingMiddlewareValidateSignature::class,
'throttle' => IlluminateRoutingMiddlewareThrottleRequests::class,
'verified' => IlluminateAuthMiddlewareEnsureEmailIsVerified::class,
];
}
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param  IlluminateHttpRequest  $request
* @param  Closure  $next
* @param  string|null  $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/home');
}
return $next($request);
}
}

(哦,我试图取消评论身份验证会话,没有效果(。

这就是它出错的地方。函数 handle(( 永远不会被触发。如果我在 if 语句前面放一个 dd((,它不会被触发。而且我真的不知道在登录控制器的结构和中间件之间寻找问题(我甚至不太可能认识到它,我还不是Laravel程序员的高级(。

然而,问题是我从未接触过这段代码。即使我这样做了,还原也应该擦除它。如果没有,从生产服务器复制回代码也不应该失败。以及为什么新安装不适用于似乎由某些提交引起的问题。

下一步是查看我猜的 XXAMP 设置,但我完全重新安装了所有这些设置以确保它正在工作。这不应该是这样,因为只要我不尝试登录,我就可以很好地浏览网站的页面。使用 Laravel 6.x 和 PHP 7.3.12(附带新的 XAMPP(。

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": "^7.2.2",
"ajthinking/tinx": "^2.1",
"barryvdh/laravel-debugbar": "^3.2",
"davejamesmiller/laravel-breadcrumbs": "^5.2",
"fideloper/proxy": "^4.0",
"laravel/framework": "6.x",
"laravel/helpers": "^1.1",
"laravel/tinker": "^1.0",
"laravelcollective/html": "^6.0",
"nunomaduro/phpinsights": "^1.11",
"predis/predis": "^1.1",
"simplesoftwareio/simple-qrcode": "~2"
},
"require-dev": {
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^2.0",
"phpunit/phpunit": "^7.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"files": [
"app/Http/helpers.php"
],
"psr-4": {
"App\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r "file_exists('.env') || copy('.env.example', '.env');""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\Foundation\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}

我也找不到非常有用的先例,因为它们似乎大多是几年前的初学者问题或有类似的问题但没有答案。我真的可以用一个有经验的Laravel程序员来看待这个问题,因为我现在真的不知道到底出了什么问题。

逐步运行以下命令:

composer require laravel/ui
php artisan ui vue --auth
npm install
npm run dev

请检查您是否安装了npm?

如果没有,请使用以下命令更新或安装 npm

npm install
npm run dev

命令是:

作曲家需要拉拉维尔/UI

对于 viewjs:php artisan ui vue --auth

对于 Reactjs:php artisan ui react --auth

对于 Bootstrap:php artisan ui bootstrap --auth

npm 安装

npm 运行开发

根据Andy Song的建议:在composer update之后,我也必须运行NPM。

相关内容

最新更新