我正在使用Laravel构建API,我的移动和Web应用程序都将使用它。我对身份验证感到困惑。
基本上,登录状态和访问者状态的用户都将使用Web应用程序。
在这种情况下,身份验证将如何运作?如果API使用用户名/密码来验证用户访问者的内容吗?
另外,如何确保向API发出请求的webapp和移动应用?如何确保某人不以编程方式访问API及其唯一可以请求访问数据的应用程序?
答案 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-middleware和http://laravel.com/docs/5.1/middleware
所以现在发生的事情是当你试图访问/api/v1/protected
时,Laravel将运行api.auth
中间件,然后让用户继续前进。
api/v1/guest
当然可以由经过身份验证的用户和访客用户访问,因为没有应用中间件。