我正在使用Laravel构建一个API,这个API将被我的移动和Web应用程序使用。我对认证感到困惑。Laravel API认证
基本上,Web应用程序将由用户在登录状态和访问者状态下使用。
认证在那种情况下如何工作?如果API使用用户名/密码来认证用户,那么访客呢?
此外,我如何确保它向web API和移动应用程序提出请求API?我如何确保某人不以编程方式访问该API及其唯一可以请求访问数据的应用程序?
我正在使用Laravel构建一个API,这个API将被我的移动和Web应用程序使用。我对认证感到困惑。Laravel API认证
基本上,Web应用程序将由用户在登录状态和访问者状态下使用。
认证在那种情况下如何工作?如果API使用用户名/密码来认证用户,那么访客呢?
此外,我如何确保它向web API和移动应用程序提出请求API?我如何确保某人不以编程方式访问该API及其唯一可以请求访问数据的应用程序?
您有一个路由文件,您将能够对这些路由应用过滤器(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-middleware和http://laravel.com/docs/5.1/middleware
所以,现在发生的事情是,当您尝试访问/api/v1/protected
,Laravel将运行api.auth
中间件,让用户可以继续前进。
api/v1/guest
当然可以被认证的用户和访客用户访问,因为没有应用中间件。