Laravel API身份验证

时间:2015-10-02 21:00:51

标签: api authentication laravel-5.1

我正在使用Laravel构建API,我的移动和Web应用程序都将使用它。我对身份验证感到困惑。

基本上,登录状态和访问者状态的用户都将使用Web应用程序。

在这种情况下,身份验证将如何运作?如果API使用用户名/密码来验证用户访问者的内容吗?

另外,如何确保向API发出请求的webapp和移动应用?如何确保某人不以编程方式访问API及其唯一可以请求访问数据的应用程序?

1 个答案:

答案 0 :(得分:0)

您有一个路线文件,您可以将过滤器(Laravel 4)/中间件(Laravel 5)应用于这些路线以保护它们。假设您正在使用L5 -

Route::group('api/v1', function() {

   Route::group(['middleware' => 'api.auth'], function() {
     Route::get('protected', function() {
       return response()->json(['Authenticated Response'], 200);
     });
   });

   Route::get('guest', function() {
     return response()->json(['Guest Response'], 200);
   });
});

然后您需要为api.auth创建中间件 - 请参阅http://laravel.com/docs/5.1/routing#route-group-middlewarehttp://laravel.com/docs/5.1/middleware

所以现在发生的事情是当你试图访问/api/v1/protected时,Laravel将运行api.auth中间件,然后让用户继续前进。

api/v1/guest当然可以由经过身份验证的用户和访客用户访问,因为没有应用中间件。