Laravel 5.3没有身份验证的RESTFul API

时间:2016-10-14 10:06:28

标签: api laravel authentication restful-architecture

我想用Laravel 5.3创建一个API,但我不需要任何类型的身份验证。有可能摆脱它吗?我不想要任何令牌或任何类型的身份验证。

5 个答案:

答案 0 :(得分:5)

为了帮助我遇到的任何人到达此处:请注意api.php中的任何路径都以“api /”为前缀。 它设置在/app/Providers/RouteServiceProvider.php

所以:

Route::get('/delegates', "APIController@delegate");

可以从

访问

http://www.yourdomain.com/api/delegates

对不起,如果它有点偏离主题,但希望它可以帮助某人。

答案 1 :(得分:2)

当然你可以摆脱它。只需设置您的路由,不要使用任何中间件。

routes/api.php文件上创建API路由,然后修改app/Http/Kernel.php文件以正确设置中间件:

删除(或添加)api中间件组中不需要的中间件。

默认情况下,L5.3在api组中附带两个中间件:

'api' => [
            'throttle:60,1',
            'bindings',
        ],

第一个为您的API提供速率限制(60个请求/分钟), 第二个替代你的模型绑定。

答案 2 :(得分:1)

这是可能的,只需创建到您的控制器的路由并返回数据(没有任何auth中间件)。

答案 3 :(得分:0)

是的,有可能 通常在您的

  

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'

答案 4 :(得分:-1)

允许您的路线在没有身份验证的情况下运行

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";
}