特定用户的Laravel 5.1 API身份验证

时间:2015-12-12 05:31:18

标签: api authentication laravel-5.1

我在Laravel 5.1中构建了一个基本应用程序并创建了一个API

在我的路线文件中,我已经定义了

Route::group(array('prefix' => 'api'), function() {
    Route::resource('getdealsbymerchant/{merchant_id}', 'dealsController@getdealsbymerchant',
    array('only' => array('index')));
});

在我的交易控制器中,我定义了以下方法

public function getdealsbymerchant($merchant_id)
{
    //
    $deals = deals::all()->where('merchant_id', $merchant_id);
    return $deals;
}

所以现在如果我转到localhost / laravel / api / getdealsbymerchant / 1032(商家ID)

它给了我一个JSON响应。

现在,我将构建一个将使用此API的AngularJS应用程序。我还将为用户提供注册和登录我的网站的选项。

我的问题是如何确保只有我的AngularJS应用程序可以访问API,而不是那些也将通过身份验证登录网站的普通用户。

我也明白我可以通过以下方式保护路线

Route::get('profile', ['middleware' => 'auth', function() {
// Only authenticated users may enter...
}]);

但是,如果我像这样验证我的API路线,所有用户也将能够访问该应用程序。

我在想,一旦我在路线中验证用户,我就可以这样检查

$user = Auth::user();
if ($user == 'AngularJSApp') {
    Route::resource('getdealsbymerchant/{merchant_id}', 'dealsController@getdealsbymerchant',
    array('only' => array('index')));
}
else {
    return "You are not allowed to access this path";
}

这看起来像我们应该实现的方式,还是有更好的方法呢?

另外,如何通过传递凭证在浏览器中测试我的API路径?

0 个答案:

没有答案