为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel - Auth::user 数据返回 null,但登录控制器除外

Laravel - Auth::user 数据返回 null,但登录控制器除外

PHP
MYYA 2022-07-09 10:29:16
我正在使用自定义表创建用户身份验证。在我的登录控制器中,身份验证工作正常并重定向到仪表板。但是,当我要使用新控制器创建另一个 url 时,该控制器的用户身份验证数据不会显示。 我想通过构造函数中的 auth 外观获取用户数据。这怎么可能? 这是我的代码:网页.php:<!---Routes for login and dashboard-->Route::get('/login','CustomLogin@index');Route::post('/login','CustomLogin@checklogin');Route::get('/','CustomLogin@SuccessLogin');Route::get('/logout','CustomLogin@logout');<!---Routes for other controller where user auth not working-->Route::get('/add-creditor', 'AddCreditor@index');CustomLogin.php(控制器):    <?phpnamespace App\Http\Controllers;use App\library\My_functions;use Illuminate\Http\Request;use Illuminate\Support\Facades\Validator;use App\User;use Illuminate\Support\Facades\Auth;use Redirect;use View;use Session;use Cookie;class CustomLogin extends Controller{    public function __construct()    {        $this->_myFun = new My_functions;    }    public function index()    {        if(!Auth::check()) {            return view('CustomLogin.CustomLogin');        }        else{            Redirect::to(SITE_URL)->send();        }    }    public function username()    {        return 'user_name';    }    function checklogin(Request $request)    {        $this->validate($request, [           'input-username'     =>      'required',           'input-password'     =>      'required'        ]);        $user_data = array(            'user_name'  => $request->get('input-username'),            'password' => $request->get('input-password')        );        if(Auth::attempt($user_data)){            return redirect('/');        }        else        {            return back()->with('error','Wrong Login Details');        }    }    function SuccessLogin(){        if (!$this->_myFun->DoLogIn()) {            Redirect::to(SITE_URL.'login')->send();        }        else {            $data=array();            return View::make('include.dashboard',$data);        }    }    function logout(Request $request){        Auth::logout();        return redirect('/login');    }}
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

在你的路由中添加auth中间件

Route::middleware(['auth'])->get('/add-creditor', 'AddCreditor@index');

尽管如此,在此之后,您可能无法通过控制器构造函数中的 Auth 外观获取用户数据,但是在您的 Route 方法中,即AddCreditor@index您将通过以下方法获取用户数据

Auth::user(); 或者 request()->user();


查看完整回答
反对 回复 2022-07-09
  • 1 回答
  • 0 关注
  • 210 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信