Auth :: check总是返回null

时间:2019-09-22 12:15:12

标签: php laravel vue.js routes

我试图在用户登录时显示一个按钮。如果用户未登录,则该按钮将不会显示在页面上。因此,我需要做的第一件事就是确定用户是否已登录。问题是,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';
    }
}

Web.php

Route::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\.-]*');

2 个答案:

答案 0 :(得分:1)

  

guard API或网络

INFO:discord.player:Preparing to terminate ffmpeg process 21972.
INFO:discord.player:ffmpeg process 21972 successfully terminated with return code of 1.

答案 1 :(得分:0)

您将返回'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();
}