Laravel 5.3 RESTFul API 无身份验证
Laravel 5.3 RESTFul API without authentication
我想用 Laravel 5.3 创建一个 API,但我不需要任何类型的身份验证。有可能摆脱它吗?我不需要任何令牌或任何类型的身份验证。
这是可能的,只需创建到您的控制器和 return 数据的路由(没有任何身份验证中间件)。
允许您在未经授权的情况下前往 运行
Http\Middleware\VerifyCsrfToken
public function handle($request, Closure $next)
{
if (!$request->is('api/*'))
{
return parent::handle($request, $next);
}
return $next($request);
}
这样设置路线
'api' => 'APIController'
这是 APIController 中的方法 ('/api/data')
public function getData(Request $request)
{
return "Hello";
}
当然可以去掉。只需将您的路由设置为不使用任何中间件。
在 routes/api.php
文件上创建 API 路由,然后修改 app/Http/Kernel.php
文件以正确设置中间件:
在 api
中间件组中删除(或添加)您不需要的中间件。
L5.3默认在api
组自带两个中间件:
'api' => [
'throttle:60,1',
'bindings',
],
第一个为您的 API (60 requests/minute) 提供速率限制,
第二个替换您的模型绑定。
为了帮助到达这里的任何与我情况相同的人:请注意 api.php 中的任何路线都以 "api/" 为前缀。
它设置在 /app/Providers/RouteServiceProvider.php
.
所以 :
Route::get('/delegates', "APIController@delegate");
将从
访问
http://www.yourdomain.com/api/delegates
对不起,如果它有点跑题,但希望它能帮助到别人。
是的,有可能
通常在您的
route/api.php
你会有这样的东西
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
您只需要删除中间件中引用 auth 的部分。
所以上面看起来像:
Route::middleware('api')->get('/user', function (Request $request) {
return $request->user();
//middleware('api') URI prefix. which would become '/api/user'
});
或
Route::apiResource('user', 'UserController');
//same as above but includes crud methods excluding 'create and edit'
我想用 Laravel 5.3 创建一个 API,但我不需要任何类型的身份验证。有可能摆脱它吗?我不需要任何令牌或任何类型的身份验证。
这是可能的,只需创建到您的控制器和 return 数据的路由(没有任何身份验证中间件)。
允许您在未经授权的情况下前往 运行
Http\Middleware\VerifyCsrfToken
public function handle($request, Closure $next)
{
if (!$request->is('api/*'))
{
return parent::handle($request, $next);
}
return $next($request);
}
这样设置路线
'api' => 'APIController'
这是 APIController 中的方法 ('/api/data')
public function getData(Request $request)
{
return "Hello";
}
当然可以去掉。只需将您的路由设置为不使用任何中间件。
在 routes/api.php
文件上创建 API 路由,然后修改 app/Http/Kernel.php
文件以正确设置中间件:
在 api
中间件组中删除(或添加)您不需要的中间件。
L5.3默认在api
组自带两个中间件:
'api' => [
'throttle:60,1',
'bindings',
],
第一个为您的 API (60 requests/minute) 提供速率限制, 第二个替换您的模型绑定。
为了帮助到达这里的任何与我情况相同的人:请注意 api.php 中的任何路线都以 "api/" 为前缀。
它设置在 /app/Providers/RouteServiceProvider.php
.
所以 :
Route::get('/delegates', "APIController@delegate");
将从
访问http://www.yourdomain.com/api/delegates
对不起,如果它有点跑题,但希望它能帮助到别人。
是的,有可能 通常在您的
route/api.php
你会有这样的东西
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
您只需要删除中间件中引用 auth 的部分。 所以上面看起来像:
Route::middleware('api')->get('/user', function (Request $request) {
return $request->user();
//middleware('api') URI prefix. which would become '/api/user'
});
或
Route::apiResource('user', 'UserController');
//same as above but includes crud methods excluding 'create and edit'