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

Auth::check 总是返回 null

Auth::check 总是返回 null

PHP
ITMISS 2022-01-24 09:24:48
我试图在用户登录时显示一个按钮。如果用户没有登录,则该按钮不会出现在页面上。所以我需要做的第一件事是确定用户是否登录。问题是,Auth::check() 一直返回 null。我已经研究过我们应该将路由放在 Auth 中间件中,但是这样做,用户必须登录才能看到页面,我不希望这样。我希望用户能够在没有登录的情况下看到该页面,并且当他们登录时,一个按钮将出现在同一页面上。零件 <button v-if="showBtnDelete==true" class="btn btn-danger">Delete</button> <script>      getUserType(){            axios.get('api/gallery/getUserType').then(res=>{            this.showBtnDelete = res.data;});        }, </script>控制器public function getUserType(){    if(Auth::check()){        return 'true';    }else{        return 'false';    }}网页.phpRoute::group(['middleware' => ['auth']],function(){Route::get('/add-image', function () {return view('layouts.master');});});Auth::routes();Route::get('/logout','Auth\LoginController@logout');Route::get('/', function () {return view('home');});Route::get('{path?}', function () {return view('layouts.master');})->where('path', '[\/\w\.-]*');
查看完整描述

3 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

保护 API 或网络



Auth::guard('api')->check();



Auth::guard('web')->check()


查看完整回答
反对 回复 2022-01-24
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

如果有人有同样的问题。问题是您的路由不受中间件组 web 的保护。这意味着它将无法检索当前用户的会话,因此 Auth 外观将始终返回 null。将 middleware('web') 添加到访问方法(代码)的路由中,如果已登录,您将能够检索当前用户。


查看完整回答
反对 回复 2022-01-24
?
千巷猫影

TA贡献1829条经验 获得超7个赞

您将返回'true'并'false'作为字符串返回true,当非严格比较和false 严格比较时都返回


echo 'false' == true; // true

echo 'false' === true; // false (not same data type)

反之亦然...现在Auth::check() 自然返回一个布尔值,因此 if,else 语句是多余的...

您可以在需要时使用辅助方法来使用每个守卫


public function getUserType()

{

   return auth()->check();

}


查看完整回答
反对 回复 2022-01-24
  • 3 回答
  • 0 关注
  • 398 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号