2015-10-02 79 views
1

我正在使用Laravel构建一个API,这个API将被我的移动和Web应用程序使用。我对认证感到困惑。Laravel API认证

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

认证在那种情况下如何工作?如果API使用用户名/密码来认证用户,那么访客呢?

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

回答

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当然可以被认证的用户和访客用户访问,因为没有应用中间件。