laravel 5.3 Api路由不返回“未授权访问”错误。

问题描述:

我正在尝试创建一个laravel 5.3的api,并且我刚创建了一个新的新的Laravel 5.3项目,并且已将以下路由添加到routes/api.php文件中。laravel 5.3 Api路由不返回“未授权访问”错误。

Route::get('/',function(){ 
    return view('welcome'); 
}); 

当我打我的浏览器这个网址http://localhost/api/我被导航到我的应用程序的默认laravel主页。

现在我的问题是,当我尝试访问api.php文件中的路由而不传递令牌时,是否应该不会收到“未经授权的访问”错误?为什么laravel让我导航到api路线,即使我没有传递令牌?

注意:我还没有在项目中添加laravel护照或任何其他oAuth库。

+0

其答案是否对你的工作页面上的例子吗? – hogan

+0

是的,就像你说过的,我们必须使用中间件,比如auth或我们自己定制的中间件。谢谢你的帮助。 –

+0

不止欢迎 – hogan

不,在定义类似路线时,Laravel不会默认检查那些路径。这是一件好事,因为可能会出现您提供信息而无需用户发送crsf令牌或进行身份验证的情况。

你想要的是在你的路线中使用中间件。看看这里:https://laravel.com/docs/5.3/middleware

这将在特定的路由或路由组中使用指定的中间件,如'auth'。即

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

    Route::post('profile', '[email protected]'); 
    .... 
} 

也看到了middlewareGroups“网络”

+0

中间件'auth'将使用默认警卫,假设名称未被更改,则需要'auth:api'。 – ollieread

+0

auth:api的作品,我会更进一步,并使用'api'组,然后处理好油门。所有这些在给定的链接中都有解释。该代码是如何使用它的一个例子。不管怎么说,还是要谢谢你。 – hogan

+0

我试图实施“client_credentials_grant”使用护照,这不需要用户,因此不能使用auth中间件。相反,我发现这个https://github.com/laravel/passport/blob/6b4adcca0b604e163454e1ca63871a516b0b5b48/src/Http/Middleware/CheckClientCredentials.php。对于希望通过护照实施“客户端凭据授予”的任何人,这是您的解决方案寻找。 –