【问题标题】:Laravel 5.4 Combined Api route group with auth middleware?Laravel 5.4 将 Api 路由组与 auth 中间件相结合?
【发布时间】:2017-09-01 11:43:08
【问题描述】:

如何将 api 路由组与我的 auth 结合起来以得到类似这样的东西:

Route::group(['middleware' => 'auth'], function () { 
   ... 
});

因此,如果我调用默认的 api 路由:

Route::middleware('auth:api')->get('/user', function (Request $request) { 
     return $request->user(); 
});

app/api/user

我没有得到返回值。

我是 api 路由的新手,所以我做错了什么。

我找不到 api Laravel 5.4 的教程

【问题讨论】:

  • 你想结合什么?
  • @EddyTheDove 喜欢在用户经过身份验证时尝试签入 api 组
  • 尝试转储 $request->user() 而不是返回它。

标签: php laravel routes laravel-5.4


【解决方案1】:

类似的东西

Route::group(['middleware' => 'auth:api'], function(){
   Route::get('user', function(Request $request) {
       dd($request->user());
   });
});

通过 ajax 传递你的令牌

var token = <?php json_encode(Auth::user()->api_token); ?>;
$.ajax({
    url:'http://...',
    headers: {
        'Authorization': 'Bearer ' + token
    },
    method: 'POST'
    ...
})

【讨论】:

  • 我会检查一下你知道为什么我没有得到返回值吗?
  • 这真的取决于你的标准。用户是否在您发送请求的浏览器上连接。如果没有,您是否在标头中发送令牌?
  • 401 表示用户未被授权。你在传递用户的令牌吗?
  • 不,我如何在 Ajax 中传递它?
  • 如果我在我的 web.php(route) 中使用相同的路由它可以工作它只是在 api.php(路由文件) 中不起作用
【解决方案2】:
Route::middleware('auth:api')->get('/user', function () { 
     return Auth::user(); 
});

Route::get('/user', function () { 
         return Auth::user(); 
})->middleware('auth');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-29
    • 2017-10-17
    • 2017-08-30
    • 1970-01-01
    • 2016-07-13
    • 2017-09-20
    • 2018-01-13
    • 2019-06-09
    相关资源
    最近更新 更多