Laravel 5.4認証ファサードが動作しません。 authミドルウェアは正常に機能します。保護されたルートへの呼び出しにより、期待どおりにログインページが生成されます。不正な資格情報が予想されるエラーを生成します。正しい資格情報が正しいページを生成します。 "Illuminate \ Support \ Facades \ Auth;"という行をコメントアウトする期待どおりエラー "クラス 'App \ Http \ Controllers \ Admin \ Auth' not found"が生成されます。laravel 5.4認証ファサードが動作しない
特に、Auth :: check()はfalseを生成し、ログインに成功したにもかかわらずAuth :: user()は何も返しません。 Authファサードのこれらの実装のいずれかを呼び出すことでエラーは発生しません。
このコードはLaravel 5.2でうまくいきました。私が知っている手順からの唯一の逸脱は、Laravel 5.4への移行中に、新しいLaravel実装で "php artisan make:auth"コマンドを実行しなかったことです。
「laravel 5.4 auth facadeが機能しません」という検索は、Bingまたはstackoverflow内部検索エンジンで関連する結果を生成しません。
関連のあるコードが下に、表示されます、私は、正確な結果を返すためのAuth ::チェック()のために希望の結論
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\User;
use App\Models\Admin;
use App\Models\Role;
use App\Models\Role_user;
use App\Models\Client;
use App\Models\Contact;
use App\Models\PublicPages;
use App\Models\Survey_question;
use App\Models\Survey_item;
use App\Models\Survey_project;
use App\Models\State;
use App\Models\Test_post;
use App\Models\Registration;
use Hash;
use Redirect;
use DB;
use Illuminate\Support\Facades\Auth;
use App\Classes\RoleHelper;
use App\Classes\CommonCode;
class AdminController extends Controller
{
var $obj_logged_in_user;
var $arr_logged_in_user;
var $bool_has_role;
var $roleHelper;
//organization of function
// 1. __construct
// 2. index
// get, alphabetically
// post, alphabetically
public function __construct(
Role_user $role_user, RoleHelper $roleHelper, Request
$request)
{
$this->middleware('auth');
echo "<pre>";
echo "admin controller, line 50<br>";
print_r($request->user);
echo "</pre>";
// line 49 (request->user) produces nothing
if (Auth::check())
{
$this->middleware('role:admin');
$this->obj_logged_in_user = Auth::user();
print_r($this->obj_logged_in_user);
// line 58 (print_r) produces nothing
$this->arr_logged_in_user = $roleHelper->prepare_logged_in_user_info($this->obj_logged_in_user);
} // end if Auth::check()
} // end __construct function
と認証のための::ユーザー()にログインしたユーザー返すためにオブジェクト。前もって感謝します。
コンストラクタでは使用できません。この時点ではミドルウェアは実行されませんでした。 – tkausl
セッションはミドルウェアに設定されていないため、ユーザーは認証ファサードから離れません。これはコントローラを使用する正しい方法ではありませんが、アンチパターンの例です。 – Ohgodwhy